我目前有一个字符串
x = ([15, 16, 17, 18, 19, 20, 21, 22, 23], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
。我的目标是将整个字符串转换为两个列表,将列表中的每个数值作为自己的项目捕获。 x.split(",")
返回['([15', ' 16', ' 17', ' 18', ' 19', ' 20', ' 21', ' 22', ' 23']
,"".join(x)
返回'([15 16 17 18 19 20 21 22 23'
- 这些都不是我要找的结果。最终结果应该是两个列表,列表中的每个数字都是数字格式的单个项目。有谁知道在python中实现这一目标的最佳方法?
答案 0 :(得分:0)
使用json:
import json
x = '([15, 16, 17, 18, 19, 20, 21, 22, 23], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])'
json.loads(x.replace('(','[').replace(')',']'))
答案 1 :(得分:0)
>>> first, second = ast.literal_eval('''x = ([15, 16, 17, 18, 19, 20, 21, 22, 23], \
... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])'''[4:])
>>> first
[15, 16, 17, 18, 19, 20, 21, 22, 23]
>>> second
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
答案 2 :(得分:0)
使用 ast.literal_eval
:
import ast
x = '([15, 16, 17, 18, 19, 20, 21, 22, 23], [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])'
x = ast.literal_eval(x)
lst1, lst2 = x[0], x[1]
print(lst1) # [15, 16, 17, 18, 19, 20, 21, 22, 23]
print(lst2) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]