python中字符串到列表的转换

python中字符串到列表的转换,python,string,list,Python,String,List,我有一根绳子 s = '1989, 1990' 我想用python将其转换为列表&我想输出为 s = ['1989', '1990'] 有没有最快的一种班轮运输方式?使用: 但你可能想: 使用删除空格 除以“,” 因此: >>> '1989, 1990,1991'.replace(' ', '').split(',') ['1989', '1990', '1991'] 如果您的字符串来自用户输入,这将更好地工作,因为用户可能会忘记在逗号后键入空格。调用拆分功能: myLi

我有一根绳子

s = '1989, 1990'
我想用python将其转换为列表&我想输出为

s = ['1989', '1990']
有没有最快的一种班轮运输方式?

使用:

但你可能想:

  • 使用删除空格

  • 除以“,”

  • 因此:

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

    如果您的字符串来自用户输入,这将更好地工作,因为用户可能会忘记在逗号后键入空格。

    调用
    拆分功能:

    myList = s.split(', ')
    

    首先删除空格,然后用逗号分隔。

    使用列出理解:

    s = '1989, 1990'
    [x.strip() for x in s.split(',')]
    
    简单明了


    此外,这已经是很多次了

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

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

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

    我为此创建了通用方法:

    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)
    

    “如果您的字符串来自用户输入,则效果会更好,因为用户可能会忘记在逗号后键入空格。”这很有帮助。感谢您的反馈,完成后请不要忘记键入空格。这将节省阅读未回答问题的其他人查找未解决问题的人的时间。这是一个更好的答案-替换所有空格可能会影响数据,剥离拆分项目是一个更好的主意。可能重复
    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)