我有一个这样的清单:
[[['(0,1,2)','(3,4,5)'],['(5,6,7)','(9,4,2)']],[['(0,1,2)','(3,4,5)'],['(5,6,7)','(9,4,2)']]]
我想得到类似的东西:
[[[[0,1,2],[3,4,5]],[[5,6,7],[9,4,2]]],[[[0,1,2],[3,4,5]],[[5,6,7],[9,4,2]]]
我尝试过字符串理解,重新模块,拆分,剥离但似乎没有工作。谢谢!
答案 0 :(得分:3)
递归似乎很简单:
l = [[['(0,1,2)','(3,4,5)'],['(5,6,7)','(9,4,2)']],[['(0,1,2)','(3,4,5)'],['(5,6,7)','(9,4,2)']]]
def convert(x):
if isinstance(x, list):
return [convert(y) for y in x]
else:
return [int(y) for y in x.strip('()').split(',')]
convert(l) # [[[[0, 1, 2], [3, 4, 5]], [[5, 6, 7], [9, 4, 2]]], [[[0, 1, 2], [3, 4, 5]], [[5, 6, 7], [9, 4, 2]]]]
答案 1 :(得分:0)
如果您想查看嵌套列表推导中的内容
startList = [[['(0,1,2)','(3,4,5)'],['(5,6,7)','(9,4,2)']],[['(0,1,2)','(3,4,5)'],['(5,6,7)','(9,4,2)']]]
new = [[[[int(x) for x in moreSub.strip("()").split(",")] for moreSub in subitem] for subitem in item] for item in startList]
print(new)