如何在Python中将逗号分隔的字符串转换为列表?

O.r*_*rka 142 python parsing tuples list

给定一个字符串,该字符串是由commma分隔的多个值的序列:

mStr = 'A,B,C,D,E' 
Run Code Online (Sandbox Code Playgroud)

如何将字符串转换为列表?

mList = ['A', 'B', 'C', 'D', 'E']
Run Code Online (Sandbox Code Playgroud)

Mat*_*son 240

您可以使用str.split方法.

>>> my_string = 'A,B,C,D,E'
>>> my_list = my_string.split(",")
>>> print my_list
['A', 'B', 'C', 'D', 'E']
Run Code Online (Sandbox Code Playgroud)

如果你想将它转换为元组,只需

>>> print tuple(my_list)
('A', 'B', 'C', 'D', 'E')
Run Code Online (Sandbox Code Playgroud)

如果您要附加到列表,请尝试以下操作:

>>> my_list.append('F')
>>> print my_list
['A', 'B', 'C', 'D', 'E', 'F']
Run Code Online (Sandbox Code Playgroud)

  • 但是要小心,拆分空字符串不会返回人们可能预期的内容:`"".split(",")` 返回 `[""]`(一个包含一个元素的列表,它是空字符串)。 (6认同)

Cam*_*man 12

如果要包含在字符串中的整数,如果要避免int单独将它们强制转换,则可以执行以下操作:

mList = [int(e) if e.isdigit() else e for e in mStr.split(',')]
Run Code Online (Sandbox Code Playgroud)

它被称为列表理解,它基于集合构建器表示法.

例如:

>>> 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]
Run Code Online (Sandbox Code Playgroud)


小智 6

为了处理空字符串的情况,请考虑以下事项:

>>> 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 []
[]
Run Code Online (Sandbox Code Playgroud)


Ray*_*ger 5

>>> some_string='A,B,C,D,E'
>>> new_tuple= tuple(some_string.split(','))
>>> new_tuple
('A', 'B', 'C', 'D', 'E')
Run Code Online (Sandbox Code Playgroud)


cri*_*ari 5

您可以拆分该字符串,并直接获取一个列表:

mStr = 'A,B,C,D,E'
list1 = mStr.split(',')
print(list1)
Run Code Online (Sandbox Code Playgroud)

输出:

['A', 'B', 'C', 'D', 'E']

您还可以将其转换为 n 元组:

print(tuple(list1))
Run Code Online (Sandbox Code Playgroud)

输出:

('A', 'B', 'C', 'D', 'E')