Hati-hati, memisahkan string kosong tidak mengembalikan apa yang diharapkan: "".split(",")mengembalikan [""](daftar dengan satu elemen, yang merupakan string kosong).
johndodo
14
Dalam kasus bilangan bulat yang termasuk dalam string, jika Anda ingin menghindari casting mereka secara intindividual, Anda dapat melakukannya:
mList =[int(e)if e.isdigit()else e for e in mStr.split(',')]
Ini disebut pemahaman daftar , dan didasarkan pada notasi pembangun set.
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)
Berharap itu akan menyelesaikan masalah tetapi tolong tambahkan penjelasan kode Anda dengan itu sehingga pengguna akan mendapatkan pemahaman yang sempurna yang ia benar-benar inginkan.
Jaimil Patel
Sepertinya duplikat dari jawaban yang sudah diterima (9 tahun yang lalu).
Jawaban:
Anda dapat menggunakan metode str.split.
Jika Anda ingin mengubahnya menjadi tuple, cukup
Jika Anda ingin menambahkan ke daftar, coba ini:
sumber
"".split(",")
mengembalikan[""]
(daftar dengan satu elemen, yang merupakan string kosong).Dalam kasus bilangan bulat yang termasuk dalam string, jika Anda ingin menghindari casting mereka secara
int
individual, Anda dapat melakukannya:Ini disebut pemahaman daftar , dan didasarkan pada notasi pembangun set.
ex:
sumber
sumber
Anda dapat menggunakan fungsi ini untuk mengonversi string karakter tunggal yang dibatasi koma menjadi list-
sumber
sumber
Pertimbangkan hal berikut untuk menangani kasing kosong:
sumber
Anda dapat memisahkan string itu
,
dan langsung mendapatkan daftar:Keluaran:
Anda juga dapat mengonversinya menjadi n-tuple:
Keluaran:
sumber