Cuidado, porém, dividir uma sequência vazia não retorna o que se poderia esperar: "".split(",")retorna [""](uma lista com um elemento, que é uma sequência vazia).
Johndodo
14
No caso de números inteiros que estão incluídos na cadeia, se você quiser evitar convertê-los intindividualmente, você pode:
mList =[int(e)if e.isdigit()else e for e in mStr.split(',')]
Isso é chamado de compreensão de lista e é baseado na notação do construtor 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 isso resolva o problema, mas por favor, inclua uma explicação do seu código para que o usuário obtenha o entendimento perfeito sobre o que ele / ela realmente deseja.
Jaimil Patel
Parece uma duplicata da resposta já aceita (9 anos atrás).
Respostas:
Você pode usar o método str.split.
Se você deseja convertê-lo em uma tupla, basta
Se você deseja anexar a uma lista, tente o seguinte:
fonte
"".split(",")
retorna[""]
(uma lista com um elemento, que é uma sequência vazia).No caso de números inteiros que estão incluídos na cadeia, se você quiser evitar convertê-los
int
individualmente, você pode:Isso é chamado de compreensão de lista e é baseado na notação do construtor de conjuntos.
ex:
fonte
fonte
Você pode usar esta função para converter seqüências de caracteres únicas delimitadas por vírgula em
fonte
fonte
Considere o seguinte para lidar com o caso de uma sequência vazia:
fonte
Você pode dividir essa sequência
,
e obter diretamente uma lista:Resultado:
Você também pode convertê-lo em uma n-tupla:
Resultado:
fonte