0

我对此感到困惑:

我有一个据称包含其他列表的列表,但现在它们在 python 中被读取为 str ,如下所示:

YACKETY = ["['11111', '3000', 'USD', '0']", "['11112', '3000', 'USD', '0']", "['11113', ' 3000', 'USD', '0']", "['11114', '3000', 'USD', '0']"]

但是 YACKETY 中的每个元素也应该是列表,现在它们是字符串。我想让 YACKETY 中的每个元素再次成为可变列表。我该如何处理?

元组是不可变的,所以这超出了解决方案,因为我希望 YACKETY 中这些列表中的元素是可变的。

4

2 回答 2

3

用于ast.literal_eval从字符串到列表的安全转换。

>>> import ast
>>> YACKETY = ["['11111', '3000', 'USD', '0']", "['11112', '3000', 'USD', '0']", "['11113', '3000', 'USD', '0']", "['11114', '3000', 'USD', '0']"]
>>> converted = [ast.literal_eval(x) for x in YACKETY]
>>> converted
[['11111', '3000', 'USD', '0'], ['11112', '3000', 'USD', '0'], ['11113', '3000', 'USD', '0'], ['11114', '3000', 'USD', '0']]
于 2013-07-08T07:03:19.503 回答
0

理想情况下,正确的方法是找出这些列表在哪里变成字符串并阻止这种情况发生。YACKETY 中的每个元素都是一个传递给 str() 的列表。由于您不希望它们作为字符串,您可能想弄清楚为什么这些列表被传递给 str() 并修复它。

如果你无法控制它,总会有一个红色的大按钮:

yacklist = [eval(item) for item in YACKETY]
于 2013-07-08T07:03:00.703 回答