Weekly backup.
This commit is contained in:
52
20220528110814-string.org
Normal file
52
20220528110814-string.org
Normal file
@@ -0,0 +1,52 @@
|
||||
:PROPERTIES:
|
||||
:ID: 8b686fdd-2abd-459d-8d8d-0c57915de8fb
|
||||
:mtime: 20220528112853
|
||||
:ctime: 20220528110814
|
||||
:END:
|
||||
#+title: String
|
||||
|
||||
* Méthode /str.translate/
|
||||
La méthode /str.translate/ permet d'appliquer une table de substitution à la chaine de caractères :
|
||||
#+BEGIN_SRC python :results output
|
||||
translation_dict = {ord('a'): ord('A'), ord('b'): "BBB", ord('c'): None}
|
||||
print(f'{"aaa bbb ccc".translate(translation_dict) = }')
|
||||
#+END_SRC
|
||||
#+RESULTS:
|
||||
: "aaa bbb ccc".translate(translation_dict) = 'AAA BBBBBBBBB '
|
||||
|
||||
* La méthode de classe /str.maketrans/
|
||||
La méthode de classe /str.maketrans/ simplifie la création des tables de translation utilisées par /str.stranslate/ en
|
||||
supprimant la nécessité d'utiliser la fonction ~ord~ :
|
||||
|
||||
#+BEGIN_SRC python :results output
|
||||
# Without str.mktrans
|
||||
translation_dict = {ord("0"): "1", ord("1"): "0"}
|
||||
print(f'{"001011010101001".translate(translation_dict) = }')
|
||||
|
||||
# With str.maketrans (single argument)
|
||||
translation_dict = str.maketrans({'0': '1', '1': '0'})
|
||||
print(f'{"001011010101001".translate(translation_dict) = }')
|
||||
|
||||
# With str.maketrans (two arguments)
|
||||
translation_dict = str.maketrans("01", "10")
|
||||
print(f'{"001011010101001".translate(translation_dict) = }')
|
||||
print(f'{"#0F45cd".translate(str.maketrans("abcdef", "ABCDEF")) = }')
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: "001011010101001".translate(translation_dict) = '110100101010110'
|
||||
: "001011010101001".translate(translation_dict) = '110100101010110'
|
||||
: "001011010101001".translate(translation_dict) = '110100101010110'
|
||||
: "#0F45cd".translate(str.maketrans("abcdef", "ABCDEF")) = '#0F45CD'
|
||||
|
||||
Le dernier argument de /str.maketrans/ permet de lister les caractères à remplacer par ~None~, à supprimer :
|
||||
#+BEGIN_SRC python :results output
|
||||
print(f'{"#0F45cd".translate(str.maketrans("abcdef", "ABCDEF", "#")) = }')
|
||||
#+END_SRC
|
||||
|
||||
#+RESULTS:
|
||||
: "#0F45cd".translate(str.maketrans("abcdef", "ABCDEF", "#")) = '0F45CD'
|
||||
|
||||
* Références
|
||||
* [[https://mathspp.com/blog/pydonts/string-translate-and-maketrans-methods][String translate and maketrans methods - Pydon't]]
|
||||
|
Reference in New Issue
Block a user