Estoy tratando de dividir una cadena tan pronto como veo un símbolo que está en mi lista de símbolos (es una lista bastante grande). ahora algo que quiero saber, como nuevo usuario de python, ¿hay algún método que no sea el método de división, que puedo decirle que se divida tan pronto como vea algún miembro en la lista de símbolos? Aquí hay un ejemplo:
symbolList=[',' , '&' , '8' , '9' , '.']
words = ['ha,di' , 'dea&r']
for word in words :
for i in word :
if i in symbolList:
#a method which splits the string by the symbol
Quiero tener y salir como:
newWords=['ha' , 'di' , 'dea' ,'r']
2 respuestas
Intenta usar rsplit
words = ['ha,di' , 'dea&r','1.2']
for i in words:
print re.split(',|&|8|9|\.', i)
#output
['ha', 'di']
['dea', 'r']
['1', '2']
Para una lista muy grande
import re
symbolList=[',' , '&' , '8' , '9' , '.']
regex = '|'.join(map(re.escape, symbolList))
words = ['ha,di' , 'dea&r','1.2']
for i in words:
print re.split(regex, i)
Puede convertir la lista de palabras en una cadena, luego reemplazar todos los delimitadores con un delimitador común que diga ,
y ahora ejecutar una división en ,
symbolList=[',' , '&' , '8' , '9' , '.']
words = ['ha,di' , 'dea&r']
delimiter = symbolList[0] #Any symbol in symbolList
words_str = delimiter.join(words) #converting words to a string separated by delimiter
print words_str
for symbol in symbolList: #replace other symbols with delimiters
words_str = words_str.replace(symbol,delimiter)
print words_str
print words_str.split(delimiter)
salida
ha,di,dea&r
ha,di,dea,r
['ha', 'di', 'dea', 'r']
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.