【问题标题】:Convert an Array, converted to a String, back to an Array将数组转换为字符串,再转换回数组
【发布时间】:2016-04-11 20:18:17
【问题描述】:

由于我的代码中的错误,我最近在 python 中发现了一个有趣的行为。 以下是所发生情况的简化版本:

a=[[1,2],[2,3],[3,4]]
print(str(a))
console:
"[[1,2],[2,3],[3,4]]"

现在我想知道是否可以将字符串转换回数组。有没有一种好的方法可以将字符串转换为具有混合数据类型 ("[1,'Hello',['test','3'],True,2.532]") 的数组,包括整数、字符串、布尔值、浮点数和数组一个数组?

【问题讨论】:

  • 我希望您知道您发现的另一个问题是针对一种完全不同的编程语言,其中的代码在 Python 中根本无法运行。
  • @user2357112 哦,谢谢。完全错过了。我将删除参考

标签: python string list python-3.x


【解决方案1】:

总有大家最喜欢的ast.literal_eval

>>> import ast
>>> x = "[1,'Hello',['test','3'],True,2.532]"
>>> y = ast.literal_eval(x)
>>> y
[1, 'Hello', ['test', '3'], True, 2.532]
>>> z = str(y)
>>> z
"[1, 'Hello', ['test', '3'], True, 2.532]"

【讨论】:

    【解决方案2】:

    ast.literal_eval 更好。顺便提一下,这也是一种方式。

    a=[[1,2],[2,3],[3,4]]
    string_list = str(a)
    original_list = eval(string_list)
    print original_list == a
    # True
    

    【讨论】:

    • 我来自未来,在这种情况下没有理由使用它。
    猜你喜欢
    • 1970-01-01
    • 2011-12-18
    • 2020-02-20
    • 2013-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多