Python 将字符串转换为列表

Python 将字符串转换为列表,python,string,list,type-conversion,Python,String,List,Type Conversion,我被这个难住了: 我有一个可能包含其他列表的列表,但现在它们在python中被读取为str,如下所示: 雅克蒂=[“[‘11111’、‘3000’、‘USD’、‘0’]”、“[‘11112’、‘3000’、‘USD’、‘0’]”、“[‘11113’、‘3000’、‘USD’、‘0’]”、“[‘11114’、‘3000’、‘USD’、‘0’”] 但是YACKETY中的每个元素也应该是列表,现在它们是字符串。我想让YACKETY中的每个元素再次成为可变列表。我怎样才能做到这一点 元组是不可变的,所以

我被这个难住了:

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

雅克蒂=[“[‘11111’、‘3000’、‘USD’、‘0’]”、“[‘11112’、‘3000’、‘USD’、‘0’]”、“[‘11113’、‘3000’、‘USD’、‘0’]”、“[‘11114’、‘3000’、‘USD’、‘0’”]

但是YACKETY中的每个元素也应该是列表,现在它们是字符串。我想让YACKETY中的每个元素再次成为可变列表。我怎样才能做到这一点


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

理想情况下,正确的方法是找出这些列表在哪里变成字符串,并阻止这种情况发生。YACKETY中的每个元素都是传递给str()的列表。因为您不希望将它们作为字符串,所以可能需要找出这些列表传递给str()的原因并加以修复

如果你不能控制它,总有一个红色的大按钮:

yacklist = [eval(item) for item in YACKETY]

理想情况下,正确的方法是找出这些列表在哪里变成字符串,并阻止这种情况发生。YACKETY中的每个元素都是传递给str()的列表。因为您不希望将它们作为字符串,所以可能需要找出这些列表传递给str()的原因并加以修复

如果你不能控制它,总有一个红色的大按钮:

yacklist = [eval(item) for item in YACKETY]

使用
ast.literal\u 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']]

使用
ast.literal\u 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']]

不建议使用
eval
eval
不建议使用。或者
map(ast.literal\u eval,YACKETY)
@Haidro列表理解似乎比map和filter更可取。或者
map(ast.literal\u eval,YACKETY)
@Haidro列表理解似乎比map和filter更可取。