2 回答

TA貢獻1789條經驗 獲得超10個贊
看來您在輸入數據中使用括號時存在一些細微的不一致,我冒昧地糾正了這些不一致。完成此操作后,為了真正解決問題,我認為將第二個數組轉換為字典以便于包含測試是有意義的。這給出:
from pprint import pprint
array_1 = [('Rabbits', [('/home/white', 'white rabbits'),
('/home/black', 'black rabbits'),
('/home/green', 'green rabbits')]),
('Cats', [('/ans/pink', 'pink cats'),
('/ans/purple', 'purple cats'),
('/home/grey', 'grey cats')]),
('Hippos', [('/home/red', 'red hippo')])]
array_2 = [('Rabbits', [('/home/black', 'black rabbits'),
('/home/green', 'green rabbits')]),
('Cats', [('/ans/pink', 'pink cats'),
('/home/grey', 'grey cats')]),
('Hippos', [])]
d = dict(array_2)
out = []
for species, tups in array_1:
lst = []
for tup in tups:
if tup in d[species]:
lst.append(tup + (True,))
else:
lst.append(tup + (False,))
out.append((species, lst))
pprint(out)
輸出:
[('Rabbits',
[('/home/white', 'white rabbits', False),
('/home/black', 'black rabbits', True),
('/home/green', 'green rabbits', True)]),
('Cats',
[('/ans/pink', 'pink cats', True),
('/ans/purple', 'purple cats', False),
('/home/grey', 'grey cats', True)]),
('Hippos', [('/home/red', 'red hippo', False)])]

TA貢獻1995條經驗 獲得超2個贊
第一個數組中有一些括號拼寫錯誤,我已更正它們。
以下代碼應該可以工作:
l1=[('Rabbits', [('/home/white', 'white rabbits'), ('/home/black', 'black rabbits'), ('/home/green', 'green rabbits')]), ('Cats', [('/ans/pink', 'pink cats'), ('/ans/purple', 'purple cats'), ('/home/grey', 'grey cats')]), ('Hippos', [('/home/red', 'red hippo')]), ]
l2=[('Rabbits', [('/home/black', 'black rabbits'), ('/home/green', 'green rabbits')]), ('Cats', [('/ans/pink', 'pink cats'), ('/home/grey', 'grey cats')]), ('Hippos', []) ]
m=[i[1][k] for i in l2 for k in range(len(i[1]))]
for i in range(len(l1)):
for k in range(len(l1[i][1])):
if l1[i][1][k] in m:
l1[i][1][k]+=(True,)
else:
l1[i][1][k]+=(False,)
print(l1)
添加回答
舉報