Câu trả lời:
Bạn có thể sử dụng phương thức str.split.
>>> my_string = 'A,B,C,D,E'
>>> my_list = my_string.split(",")
>>> print my_list
['A', 'B', 'C', 'D', 'E']
Nếu bạn muốn chuyển đổi nó thành một tuple, chỉ cần
>>> print tuple(my_list)
('A', 'B', 'C', 'D', 'E')
Nếu bạn đang muốn thêm vào một danh sách, hãy thử điều này:
>>> my_list.append('F')
>>> print my_list
['A', 'B', 'C', 'D', 'E', 'F']
"".split(",")
trả về [""]
(một danh sách có một phần tử, đó là chuỗi rỗng).
Trong trường hợp số nguyên được bao gồm trong chuỗi, nếu bạn muốn tránh truyền chúng thành int
từng phần riêng lẻ, bạn có thể thực hiện:
mList = [int(e) if e.isdigit() else e for e in mStr.split(',')]
Nó được gọi là hiểu danh sách , và nó dựa trên ký hiệu bộ xây dựng.
Ví dụ:
>>> 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]
>>> some_string='A,B,C,D,E'
>>> new_tuple= tuple(some_string.split(','))
>>> new_tuple
('A', 'B', 'C', 'D', 'E')
Bạn có thể sử dụng chức năng này để chuyển đổi các chuỗi ký tự đơn được phân tách bằng dấu phẩy sang danh sách-
def stringtolist(x):
mylist=[]
for i in range(0,len(x),2):
mylist.append(x[i])
return mylist
#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 strings
if 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)
Hãy xem xét những điều sau đây để xử lý trường hợp của một chuỗi rỗng:
>>> my_string = 'A,B,C,D,E'
>>> my_string.split(",") if my_string else []
['A', 'B', 'C', 'D', 'E']
>>> my_string = ""
>>> my_string.split(",") if my_string else []
[]
Bạn có thể tách chuỗi đó trên ,
và trực tiếp lấy danh sách:
mStr = 'A,B,C,D,E'
list1 = mStr.split(',')
print(list1)
Đầu ra:
['A', 'B', 'C', 'D', 'E']
Bạn cũng có thể chuyển đổi nó thành một n-tuple:
print(tuple(list1))
Đầu ra:
('A', 'B', 'C', 'D', 'E')