在Python中,我想将列表中的所有字符串都转换为非字符串。
所以,如果我有
results = ["['new','york','intrepid', 'bumbling']","['duo', 'deliver', 'good', 'one']"]
我如何做到:
results = [['new','york','intrepid', 'bumbling'],['duo', 'deliver', 'good', 'one']]
答案 0 :(得分:2)
如果您不需要验证输入变量的正确性,eval
又如何:
results = [eval(x) for x in results]
答案 1 :(得分:1)
使用literal_eval()
from ast
比eval()
安全得多:
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表达式。