请任何人帮我解决下面的代码片段
lst1 = [('1','2',{"v" : 5, "a" : 3}),('7','9',{"v" : 7, "a" : 3}),('3','4',{"v" : 4, "a" : 3}),('1','6',{"v" : 0, "a" : 3}),('2','9',{"v" : 4, "a" : 3})]
lst2 = [[('1','2'),('2','9')], [('1','6'),('7','9')]]
vol = []
for elem in lst2:
for sub_e in elem:
for l in lst1:
if l[0:2] == sub_e:
vol.append(l[2]["v"])
给出输出:
[5, 4, 0, 7]
但是有没有办法重写它,使输出如下:
[[5, 4], [0, 7]]
谢谢
最佳答案
您可以按如下方式进行:
lst1 = [('1','2',{"v" : 5, "a" : 3}),('7','9',{"v" : 7, "a" : 3}),('3','4',{"v" : 4, "a" : 3}),('1','6',{"v" : 0, "a" : 3}),('2','9',{"v" : 4, "a" : 3})]
lst2 = [[('1','2'),('2','9')], [('1','6'),('7','9')]]
vol = []
for i,elem in enumerate(lst2): #changed to enumerate
vol.append([]) #added empty list for each outer loop
for sub_e in elem:
for l in lst1:
if l[0:2] == sub_e:
vol[i].append(l[2]["v"]) #changed vol to vol[i]
>>> print vol
[[5, 4], [0, 7]]
关于python - 对嵌套元组的内容进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23421778/