Python中将字符串转换为列表

5

我有一个字符串。

s = '1989, 1990'

我希望使用Python将其转换为列表,并得到以下输出:

s = ['1989', '1990']

有没有更快的单行代码实现同样的功能?

可能是重复的问题:如何在Python中将字符串拆分为列表? - mechanical_meat
6个回答

8
使用列表推导式(list comprehensions):
s = '1989, 1990'
[x.strip() for x in s.split(',')]

简短易懂。

另外,这已经被问了很多次


1
这是一个更好的答案 - 替换所有空格可能会影响数据,剥离分裂的项目是一个更好的想法。 - Gareth Latty

4

使用split方法

>>> '1989, 1990'.split(', ')
['1989', '1990']

但是你可能想要:

  1. 使用replace删除空格

  2. 按“,”拆分

如下所示:

>>> '1989, 1990,1991'.replace(' ', '').split(',')
['1989', '1990', '1991']

如果您的字符串来自用户输入,那么这种方法会更加有效,因为用户可能会在逗号后忘记按空格。


1
如果字符串来自用户输入,这种方法会更有效,因为用户可能会在逗号后忘记打空格。这是很有帮助的。 - self
感谢您的反馈,请不要忘记在完成后关闭问题。这将节省其他人阅读未解决问题以寻找需要帮助的人的时间。 - jpic

4
调用 split 函数:
myList = s.split(', ')

2
print s.replace(' ','').split(',')

首先去除空格,然后按逗号分隔。


1

或者您可以使用正则表达式:

>>> import re
>>> re.split(r"\s*,\s*", "1999,2000, 1999 ,1998 , 2001")
['1999', '2000', '1999', '1998', '2001']

\s*,\s* 表达式匹配零个或多个空格字符,一个逗号和再次零个或多个空格字符。


1
我为此创建了通用方法:
def convertToList(v):
    '''
    @return: input is converted to a list if needed
    '''
    if type(v) is list:
        return v
    elif v == None:
        return []
    else:
        return [v]

或许对你的项目有用。

converToList(s)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接