【问题标题】:Array string format to real array [duplicate]数组字符串格式到真实数组[重复]
【发布时间】:2018-05-25 10:43:48
【问题描述】:

我有这个字符串

'[334.0, 223.0, 41.0, 819.0]'

我需要在这个数组中转换它:

[334.0, 223.0, 41.0, 819.0]

有什么想法吗? 谢谢

【问题讨论】:

    标签: python arrays string


    【解决方案1】:

    使用 ast 模块。

    例如:

    import ast
    print(ast.literal_eval('[334.0, 223.0, 41.0, 819.0]'))
    

    输出:

    [334.0, 223.0, 41.0, 819.0]
    

    【讨论】:

    【解决方案2】:

    没有额外导入的简单单行:

    a = '[334.0, 223.0, 41.0, 819.0]'
    
    b = [ float(i) for i in a[1:-1].split(',') ]
    
    print b
    

    输出:

    [334.0, 223.0, 41.0, 819.0]
    

    【讨论】:

    • float(223) 将产生输出223.0。 (看来评论者删除了评论。这是为了回应:如果我们在a中有一个整数值怎么办)。
    【解决方案3】:

    eval 呢?

    这将评估一个字符串,就好像它是一个 python 代码。

    例如:

    string='[334.0, 223.0, 41.0, 819.0]'
    a = eval(string)
    print(a[0])
    

    输出:

    334.0
    

    【讨论】:

    • @soon 仅当您不知道自己在做什么时。 ;)
    • 说实话 - 大多数开发人员不知道他们在做什么。 ast.literal_eval 对对象的行为类似于 eval,它是安全的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-21
    • 2013-08-04
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多