Cet article vous présente principalement certaines des méthodes de chaîne intégrées à Python, notamment la présentation, la conversion de la casse des chaînes, la sortie du format de chaîne, la recherche, le positionnement et le remplacement de chaînes, l'union et la division de chaînes et les conditions de chaîne, le codage de chaînes<.>
Le traitement des chaînes est une compétence très courante, mais Python a trop de méthodes de chaînes intégrées, qui sont souvent oubliées. Pour une référence rapide, chaque méthode intégrée est spécialement écrite sur la base de Python 3.5.1. Les exemples sont classés. pour une indexation facile.Conversion de casse
str.capitalize()
# 'Adi dog'
# 'Abcd Xu'
# 'Xu abcd'
# 'SS'
str. lower()
# 'dobi'
# 'ß'
# 'Xu abcd'
str.casefold ( )
# 'dobi'
# 'ss'
str.swapcase()
#: 'Xu dOBI A123 SS' Le ß ici est converti en SS, qui est une lettre majuscule
Mais il convient de noter que s .swapcase( ).swapcase() == s n'est pas nécessairement vrai :
# 'µ'
# 'Μ '
# 'μ'
Out[154] : '0x3bc'
str.title()
# 'Hello World'
# 'Chinois Abc Def 12Gh'
"Ce sont les amis de Bill du Royaume-Uni".title()
# "Ce sont les amis de Bill du Royaume-Uni"
str.upper()
# 'Chinese ABC DEF 12GH'
Il convient de noter que s.upper().isupper() n'est pas nécessairement vrai.
Sortie au format de chaîne
Centrez la chaîne en fonction de la largeur donnée, vous pouvez remplir le longueur excessive étant donné un nombre spécifié de caractères, ou renvoie la chaîne d'origine si la longueur spécifiée est inférieure à la longueur de la chaîne.
# '**12345***'
#' 12345 '
str.ljust(width[, fillchar]); str.rjust(width[, fillchar])
# 'dobi '
# 'dobi~~~~~ ~'
# 'dobi'
# 'dobi'
str.zfill(width)
# '00042'
"-42".zfill(5)
# '-0042'
# '000dd'
# '-000-'
# '0000'
# '00000'
# 'dddddddd'
str.expandtabs(tabsize=8)
Remplace les caractères de tabulation horizontale par des espaces spécifiés afin que l'espacement entre les chaînes adjacentes reste dans le nombre d'espaces spécifié.
tab.expandtabs()
# '1 23 456 7890 1112131415 161718192021'
# '123456781234567812345678123456 781234567812345678' Faites attention à relation entre le nombre d'espaces et la position de sortie ci-dessus
onglet .expandtabs(4)
# '1 23 456 7890 1112131415 161718192021'
# '12341234123412341234123412341234'
str.format(^args,^^kwargs)
Il y en a beaucoup syntaxes pour le formatage des chaînes. Les documents officiels contiennent déjà des exemples plus détaillés, je n'écrirai donc pas d'exemples ici. Ceux qui veulent en savoir plus sur les chaussures pour enfants peuvent directement cliquer ici Exemples de format.
str.format_map(mapping. )
Semblable à str .format(*args, **kwargs), la différence est que le mappage est un objet dictionnaire.
Personnes = {'name':'john', 'age':56}
'Je m'appelle {name}, je suis âgé de {age}'.format_map(People)
# 'Je m'appelle John, j'ai 56 ans'
Recherche, positionnement et remplacement de chaîne
str.count(sub[, start[, end] ])
text = 'revêtement de protection extérieur'
text.count('e')
# 4
text.count('e', 5, 11)
# 1
text.count('e', 5, 10)
# 0
str.find(sub[, start[, end]]); [, start[, end]])
text = 'revêtement de protection extérieur'
text.find('er')
# 3
text.find('to ')
# -1
text.find('er', 3)
Out[121] : 3
text.find('er', 4)
Out[122] : 20
text.find('er', 4, 21)
Out[123]: -1
text.find('er', 4, 22)
Out[124] : 20
text.rfind('er')
Out[125] : 20
text.rfind('er', 20)
Out[126] : 20
text.rfind('er', 20, 21)
Out[129] : -1
str.index(sub[, start [, end]]); str.rindex(sub[, start[, end]])
Similaire à find() rfind(), la différence est que s'il n'est pas trouvé, une ValueError sera levée.
str.replace(old, new[, count])
'chien wow wow jiao'.replace('wow', 'wang')
# 'chien wang wang jiao'
'chien wow wow jiao'.replace('wow', 'wang', 1)
# 'chien wang wow jiao'
'dog wow wow jiao'.replace('wow ', 'wang', 0)
# 'chien wow wow jiao'
'chien wow wow jiao'.replace('wow', 'wang', 2)
# 'chien wang wang jiao'
'chien wow wow jiao'.replace('wow', 'wang', 3)
# 'chien wang wang jiao'
str.lstrip([chars]); str.rstrip([chars]); str.strip([chars])
' dobi'.lstrip()
# 'dobi'
'db.kun.ac.cn'.lstrip(' dbk')
# '.kun.ac.cn'
' dobi '.rstrip()
# 'dobi'
'db.kun.ac.cn'.rstrip( 'acn')
# 'db.kun.ac.'
' dobi '.strip()
# 'dobi'
'db.kun.ac.cn'.strip ('db.c')
# 'kun.ac.cn'
'db.kun.ac.cn'.strip('cbd.un')
# 'kun.a'
static str.maketrans(x[, y[, z]]); str.translate(table)
maktrans est une méthode statique utilisée pour générer un tableau de comparaison à utiliser par translation.
Si maktrans n'a qu'un seul paramètre, le paramètre doit être un dictionnaire. La clé du dictionnaire est soit un encodage Unicode (un entier), soit une chaîne de longueur 1. La valeur du dictionnaire peut être n'importe quelle chaîne. Encodage Unicode.
a = 'dobi'
ord('o')
# 111
ord('a')
# 97
hex( ord('dog'))
# '0x72d7'
b = {'d':'dobi', 111 :'est', 'b':97, 'i':'u72d7u72d7' >
table = str.maketrans(b)
a.translate(table)
# 'dobi est un chien'
Si maktrans a deux paramètres, alors les deux paramètres forment un mappage, et les deux chaînes doivent être de longueur égale ; s'il y a un troisième paramètre, le troisième paramètre doit également être une chaîne, et la chaîne sera automatiquement mappée sur Aucun :
a = 'dobi est un chien'
table = str.maketrans('dobi', 'alph')
a.translate(table)
# 'alph hs a alg '
table = str.maketrans('dobi', 'alph', 'o')
a.translate(table)
# 'aph hs a ag'
Union et fractionnement de chaînes
str.join(iterable)
Spécifier la chaîne, la chaîne concaténée les éléments sont des objets itérables de chaînes.
'-'.join(['2012', '3', '12'])
# '2012-3-12'
'-'.join([ 2012, 3, 12])
# TypeError : élément de séquence 0 : instance str attendue, int trouvé
'-'.join(['2012', '3', b'12']) #bytes n'est pas une chaîne
# TypeError : élément de séquence 2 : instance str attendue, octets trouvés
'-'.join(['2012'])
# '2012'
'-'.join([])
#'
' -'.join([Aucun])
# TypeError : élément de séquence 0 : instance str attendue, AucunType trouvé
'-'.join([''])
# ''
','.join({'dobi':'chien', 'polly':'oiseau'})
# 'dobi,polly'
','.join({ 'dobi' : 'chien', 'polly' : 'oiseau'}.values())
# 'chien,oiseau'
str.partition(sep); str.rpartition(sep)
'chien wow wow jiao'.partition('wow')
# ('dog', 'wow', 'wow jiao')
'dog wow wow jiao'.partition('chien')
# ('', 'chien', 'wow wow jiao')
'chien wow wow jiao'.partition('jiao')
# ('chien wow wow', 'jiao', '')
'chien wow wow jiao'.partition('ww')
# ('chien wow wow jiao', '', '' )
'chien wow wow jiao'.rpartition('wow')
Out[131] : ('chien wow', 'wow', 'jiao' )
'chien wow wow jiao'.rpartition('dog')
Out[132] : ('', 'chien', 'wow wow jiao')
'chien wow wow jiao'.rpartition('jiao')
Out[133]: ('chien wow wow', 'jiao', '')
'chien wow wow jiao'.rpartition('ww ')
Out[135] : ('', '', 'chien wow wow jiao')
str.split(sep=None, maxsplit=-1); str.rsplit(sep=Aucun, maxsplit=-1)
'1,2,3'.split(','), '1, 2, 3'.rsplit()
# (['1 ', '2', '3'], ['1,', '2,', '3'])
'1,2,3'.split(',', maxsplit=1 ), '1,2,3'.rsplit(',', maxsplit=1)
# (['1', '2,3'], ['1,2', '3'])
'1 2 3'.split(), '1 2 3'.rsplit()
# (['1', '2', '3'], ['1', '2 ', '3'])
'1 2 3'.split(maxsplit=1), '1 2 3'.rsplit(maxsplit=1)
# (['1', '2 3'], ['1 2', '3'])
' 1 2 3 '.split()
# ['1', '2', '3']
'1,2,,3,'.split(','), '1,2,,3,'.rsplit(',')
# (['1', '2', '', '3', ''], ['1', '2', '', '3', ''])
''.split()
# []
''.split('a')
# ['']
'bcd'.split('a')
# ['bcd']
'bcd'.split( Aucun)
# ['bcd']
str.splitlines([keepends])
字符串以行界符为分隔符拆分为列表;当 keepends 为True,
'ab cnnde fgrklrn'.splitlines()
# ['ab c', '', 'de fg ', 'kl']
'ab cnnde fgrklrn'.splitlines(keepends=True)
# ['ab cn', 'n', 'de fgr', 'klrn']
"".splitlines(), ''.split('n') #注意两者的区别
# ([], [''])
"Un linge".splitlines()
# (['Une ligne'], ['Deux lignes', ''])
字符串条件判断
str.endswith( suffixe[, début[, fin]]); str.startswith(prefix[, start[, end]])
text = 'revêtement de protection extérieur'
text.endswith('ing')
# True
text .endswith(('gin', 'ing'))
# True
text.endswith('ter', 2, 5)
# True
text.endswith('ter ', 2, 4)
# False
str.isalnum()
字符串和数字的任意组合,即为真,简而言之:
utilise c.isalpha(), c.isdecimal(), c.isdigit(), c.isnumeric() à la place de c.isalpha(), et c.isalnum() 为真。
'dobi'.isalnum()
# True
'dobi123'.isalnum()
# True
'123'.isalnum( )
# True
'徐'.isalnum()
# True
'dobi_123'.isalnum()
# False
'dobi 123'.isalnum()
# False
'%'.isalnum()
# False
str.isalpha()
Unicode 字符数据库中作为 “Lettre”(这些字符一般具有 « Lm », « Lt », « Lu », « Ll » ou « Lo » 等标识,不同于 Alphabétique) 的,均为真。
'dobi'.isalpha()
# True
'do bi'.isalpha()
# False
'dobi123'.isalpha()
# False
'徐' .isalpha()
# True
str.isdecimal(); str.isdigit(); str.isnumeric()
三个方法的区别在于对 Unicode 通用标识的真值判断范围不同:
isdecimal: Nd,
isdigit: Non, Nd,
isnumérique : Non , Sd, Nl
La différence entre chiffre et décimal est que certaines chaînes numériques sont des chiffres mais pas décimales. Pour plus de détails, cliquez ici
num = 'u2155'
print(num)
# ⅕num .isdecimal(), num.isdigit(), num.isnumeric()
# (False, False, True)
print(num)
# ²
num.isdecimal(), num.isdigit(), num.isnumeric()
# (False, True, True)
num .isdecimal (), num.isdigit(), num.isnumeric()
# (Ture, True, True)
num.isdecimal(), num .isdigit (), num.isnumeric()
# (False, False, True)
num.isdecimal(), num.isdigit(), num.isnumeric ()
# (False, False, True)
num.isdigit() # True
num.isdecimal() # AttributeError 'bytes' l'objet n'a pas d'attribut 'isdecimal'
num.isnumeric() # AttributeError 'bytes' l'objet n'a pas d'attribut 'isnumeric'
str.isidentifier()
Déterminer si le la chaîne est valide est un identifiant légal.
'def'.isidentifier()# True
# True
# Vrai
# Vrai
# Faux
# False
str.islower()
'Xu'.islower()
# False
# Faux
# True
# True
# False
# False
# True
Out[24] : False
# True
# True
# True
Out[29] : Vrai
Out[30 ] : Faux
Sortie[31] : Vrai
# True
# False
# False
# True
# False
# False
# True
# False
# True
str.isupper()
'Xu'.isupper()
# False
Out[41] : Vrai
# False
# True
# True
# True
# True
# False
Encodage de chaîne
# UnicodeEncodeError : le codec 'ascii' ne peut pas encoder le caractère 'u5f90'...
# b'?'
# b''
# b'Xu'
# b'\u5f90'