将字符串列表转换为非字符串列表

时间:2019-04-14 07:35:19

标签: python python-3.x list

在Python中,我想将列表中的所有字符串都转换为非字符串。

所以,如果我有

results =  ["['new','york','intrepid', 'bumbling']","['duo', 'deliver', 'good', 'one']"]

我如何做到:

 results =  [['new','york','intrepid', 'bumbling'],['duo', 'deliver', 'good', 'one']]

2 个答案:

答案 0 :(得分:2)

如果您不需要验证输入变量的正确性,eval又如何:

results = [eval(x) for x in results]

答案 1 :(得分:1)

使用literal_eval() from asteval()安全得多:

import ast

results =  ["['new','york','intrepid', 'bumbling']","['duo', 'deliver', 'good', 'one']"]
results_parsed = [ast.literal_eval(x) for x in results]
print(results_parsed)

输出:

[['new', 'york', 'intrepid', 'bumbling'], ['duo', 'deliver', 'good', 'one']]

ast.literal_eval()仅解析包含文字结构的字符串(字符串,字节,数字,元组,列表,字典,集合,布尔值和None),而不是任意的Python表达式。