【问题标题】:Python Convert String List to ListPython将字符串列表转换为列表
【发布时间】:2017-11-15 16:52:51
【问题描述】:

所以我有一个 python 列表,格式如下:

x = ['[1,2,3]', '[4,5,6,]', ...]

有没有办法将“内部列表”转换为实际列表?所以输出将是

x = [[1,2,3], [4,5,6], ....]

谢谢!

【问题讨论】:

    标签: string python-2.7 list type-conversion


    【解决方案1】:

    您可以使用 eval 将字符串评估为代码。

    x = ['[1,2,3]', '[4,5,6,]']
    y = [eval(s) for s in x]
    

    【讨论】:

    • 通常不鼓励使用eval。
    【解决方案2】:

    json 的另一个例子:

    >>> import json
    >>> x = ['[1,2,3]', '[4,5,6]']
    >>> [json.loads(y) for y in x]
    [[1, 2, 3], [4, 5, 6]]
    

    请将您的字符串限制为仅限dicts 和lists。

    【讨论】:

    • 我接受了这个答案,而不是 khelwood 提出的答案(他的解决方案也解决了我的问题),因为我的完整代码已经使用了 json 库。
    【解决方案3】:

    您可以使用ast.literal_eval 进行这种转换。您可以使用map 将转换应用于列表的每个元素。

    from ast import literal_eval
    
    x = ['[1,2,3]', '[4,5,6,]']
    x = map(literal_eval, x)
    print x
    

    给予

    [[1, 2, 3], [4, 5, 6]]
    

    【讨论】:

    • ast.literal_eval 很棒,它可以转换多种类型,但如果列表有任何标签(即<tag> 等)会出错
    猜你喜欢
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2016-11-09
    • 1970-01-01
    • 2023-03-16
    • 2016-08-10
    相关资源
    最近更新 更多