Quan dividiu una cadena separada per comes en una llista a Python, si no hi ha espais entremig, només funcionarà split(). Si hi ha espais, és útil combinar-lo amb strip() per eliminar els espais addicionals. A més, utilitzar la notació de comprensió de llista és una manera intel·ligent d’escriure.
En aquest apartat, primer expliquem el següent.
- Dividiu una cadena amb un delimitador especificat i retorneu-la com a llista
split()
- Elimina els caràcters addicionals del principi i el final d’una cadena.
strip()
- Notació de comprensió de llista per aplicar funcions i mètodes als elements de llista.
També mostra com fer una llista de cadenes separades per espais i comes eliminant espais, tal com es mostra a continuació.one, two, three'
A més, parlarem del següent
- Com obtenir-lo com a llista de números
- Com utilitzar join() per unir-se a una llista i tornar-la a convertir en una cadena
- split():Dividiu una cadena amb un delimitador especificat i retorneu-la com a llista
- strip():Elimina els caràcters addicionals del principi i el final d’una cadena.
- Notació de comprensió de llista: apliqueu funcions i mètodes als elements de la llista
- Obteniu una llista de números
- join():Combineu una llista i obteniu-la com a cadena
split():Dividiu una cadena amb un delimitador especificat i retorneu-la com a llista
Mitjançant el mètode split() per a cadenes, podeu dividir una cadena amb un delimitador especificat i obtenir-la com a llista (matriu). El delimitador especificat es pot especificar amb l’argument següent.sep
Si s’omet l’argument sep i no s’especifica cap delimitador, divideix la cadena per espais i retorna una llista. Els espais i les tabulacions consecutius també dividiran la llista, de manera que si voleu fer una llista de cadenes delimitades per tabulacions, podeu utilitzar split() sense l’argument.
s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one two three' l = s.split() print(l) # ['one', 'two', 'three'] s = 'one\ttwo\tthree' l = s.split() print(l) # ['one', 'two', 'three']
Si s’especifica un delimitador a l’argument sep, divideix la llista per aquesta cadena i retorna una llista.
s = 'one::two::three' l = s.split('::') print(l) # ['one', 'two', 'three']
En el cas d’una cadena separada per comes, si no hi ha espai en blanc addicional, no hi ha cap problema, però si executeu split() amb una coma com a delimitador d’una cadena separada per una coma + espai en blanc, acabareu. amb una llista de cadenes amb espais en blanc al principi.
s = 'one,two,three' l = s.split(',') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(',') print(l) # ['one', ' two', ' three']
Podeu utilitzar una coma + espai com a delimitador de la manera següent, però no funcionarà si el nombre d’espais de la cadena original és diferent., '
s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', 'three'] s = 'one, two, three' l = s.split(', ') print(l) # ['one', 'two', ' three']
El mètode string strip(), que s’explicarà a continuació, es pot utilitzar per tractar dos espais.
strip():Elimina els caràcters addicionals del principi i el final d’una cadena.
strip() és un mètode per eliminar caràcters addicionals del principi i el final d’una cadena.
Si s’omet l’argument, es retorna una cadena nova amb els espais en blanc eliminats. La cadena original en si no es modifica.
s = ' one ' print(s.strip()) # one print(s) # one
Si s’especifica una cadena com a argument, s’eliminaran els caràcters continguts a la cadena.
s = '-+-one-+-' print(s.strip('-+')) # one
En aquest cas, els espais no s’eliminen. Per tant, si també voleu eliminar els espais en blanc, passeu una cadena que inclogui espais com a argument, tal com es mostra a continuació.-+ '
s = '-+- one -+-' print(s.strip('-+')) # one s = '-+- one -+-' print(s.strip('-+ ')) # one
strip() gestiona els dos extrems, però també estan disponibles les funcions següents.
lstrip()
:Processa només el principirstrip()
:Processa només el final de la línia.
Notació de comprensió de llista: apliqueu funcions i mètodes als elements de la llista
Si voleu aplicar una funció o mètode als elements d’una llista, és intel·ligent utilitzar la notació de comprensió de la llista en lloc del bucle for si voleu obtenir la llista al final.
- Articles relacionats:Utilitzant la notació de comprensió de llista de Python
Aquí, apliquem strip() a la llista obtinguda dividint la cadena amb split(). L’espai en blanc addicional en una cadena separada per comes que conté espais en blanc es pot eliminar per fer una llista.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three']
Quan això s’aplica a una cadena buida, es pot obtenir una llista amb una única cadena buida com a element.
s = '' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # [''] # 1
Si voleu obtenir una llista buida per a una cadena buida, podeu configurar una branca condicional a la notació de comprensió de la llista.
s = '' l = [x.strip() for x in s.split(',') if not s == ''] print(l) print(len(l)) # [] # 0
one, , three'
A més, si falta un element separat per comes, com s’ha descrit anteriorment, el primer mètode el llistarà com a element de cadena buit.
s = 'one, , three' l = [x.strip() for x in s.split(',')] print(l) print(len(l)) # ['one', '', 'three'] # 3
Si voleu ignorar les parts que falten, podeu configurar una branca condicional a la notació de comprensió de la llista.
s = 'one, ,three' l = [x.strip() for x in s.split(',') if not x.strip() == ''] print(l) print(len(l)) # ['one', 'three'] # 2
Obteniu una llista de números
Si voleu obtenir una cadena de nombres separats per comes com una llista de números en lloc d’una cadena, apliqueu int() o float() per convertir la cadena en un número a la notació de comprensió de la llista.
s = '1, 2, 3, 4' l = [x.strip() for x in s.split(',')] print(l) print(type(l[0])) # ['1', '2', '3', '4'] # <class 'str'> s = '1, 2, 3, 4' l = [int(x.strip()) for x in s.split(',')] print(l) print(type(l[0])) # [1, 2, 3, 4] # <class 'int'>
join():Combineu una llista i obteniu-la com a cadena
En el patró oposat, si voleu unir-vos a una llista i obtenir cadenes separades per un delimitador específic, utilitzeu el mètode join().
És fàcil cometre un error, però tingueu en compte que join() és un mètode de cadena, no un mètode de llista. La llista s’especifica com a argument.
s = 'one, two, three' l = [x.strip() for x in s.split(',')] print(l) # ['one', 'two', 'three'] print(','.join(l)) # one,two,three print('::'.join(l)) # one::two::three
Podeu escriure-ho en una línia de la següent manera.
s = 'one, two, three' s_new = '-'.join([x.strip() for x in s.split(',')]) print(s_new) # one-two-three
Si només voleu canviar un delimitador fix, és més fàcil substituir-lo amb el mètode replace().
s = 'one,two,three' s_new = s.replace(',', '+') print(s_new) # one+two+three