Sin embargo, tener cuidado al dividir una cadena vacía no devuelve lo que uno podría haber esperado: "".split(",")retornos [""](una lista con un elemento, que es una cadena vacía).
johndodo
14
En el caso de los enteros que se incluyen en la cadena, si desea evitar convertirlos intindividualmente, puede hacer:
mList =[int(e)if e.isdigit()else e for e in mStr.split(',')]
Se llama comprensión de la lista y se basa en la notación del generador de conjuntos.
ex:
>>> mStr ="1,A,B,3,4">>> mList =[int(e)if e.isdigit()else e for e in mStr.split(',')]>>> mList
>>>[1,'A','B',3,4]
#splits string according to delimeters '''
Let's make a function that can split a string
into list according the given delimeters.
example data: cat;dog:greff,snake/
example delimeters: ,;- /|:
'''def string_to_splitted_array(data,delimeters):#result list
res =[]# we will add chars into sub_str until# reach a delimeter
sub_str =''for c in data:#iterate over data char by char# if we reached a delimeter, we store the result if c in delimeters:# avoid empty stringsif len(sub_str)>0:# looks like a valid string.
res.append(sub_str)# reset sub_str to start over
sub_str =''else:# c is not a deilmeter. then it is # part of the string.
sub_str += c
# there may not be delimeter at end of data. # if sub_str is not empty, we should att it to list. if len(sub_str)>0:
res.append(sub_str)# result is in res return res
# test the function.
delimeters =',;- /|:'# read the csv data from console.
csv_string = input('csv string:')#lets check if working.
splitted_array = string_to_splitted_array(csv_string,delimeters)print(splitted_array)
Espero que resuelva el problema, pero agregue una explicación de su código con él para que el usuario obtenga una comprensión perfecta de lo que realmente quiere.
Jaimil Patel
Parece un duplicado de la respuesta ya aceptada (hace 9 años).
Respuestas:
Puede usar el método str.split.
Si quieres convertirlo en una tupla, solo
Si desea agregar a una lista, intente esto:
fuente
"".split(",")
retornos[""]
(una lista con un elemento, que es una cadena vacía).En el caso de los enteros que se incluyen en la cadena, si desea evitar convertirlos
int
individualmente, puede hacer:Se llama comprensión de la lista y se basa en la notación del generador de conjuntos.
ex:
fuente
fuente
Puede usar esta función para convertir cadenas de caracteres individuales delimitadas por comas a list-
fuente
fuente
Considere lo siguiente para manejar el caso de una cadena vacía:
fuente
Puede dividir esa cadena
,
y obtener directamente una lista:Salida:
También puedes convertirlo en una n-tupla:
Salida:
fuente