Files
org-roamings/20220528110814-string.org
2022-06-04 12:57:39 +02:00

2.0 KiB

String

Méthode str.translate

La méthode str.translate permet d'appliquer une table de substitution à la chaine de caractères :

translation_dict = {ord('a'): ord('A'), ord('b'): "BBB", ord('c'): None}
print(f'{"aaa bbb ccc".translate(translation_dict) = }')
"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 :

# 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")) = }')
"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 :

print(f'{"#0F45cd".translate(str.maketrans("abcdef", "ABCDEF", "#")) = }')
"#0F45cd".translate(str.maketrans("abcdef", "ABCDEF", "#")) = '0F45CD'