我想使用循环(一个接一个地)检索如下所示的结果
result=((1, 'name1', 'Noah'),(1, 'name2', 'Liam'),(2, 'name3', 'Mason'),(3, 'name5', 'Mason'))
tupe = ((1, 'name1', 'Noah'),(1, 'name2', 'Liam'),(2, 'name3', 'Mason'),(2,
'name4', 'Mason'),(3, 'name5', 'Mason'))
我尝试过的代码(但没有给出预期的输出)
for rowx in tupe:
for rowy in tupe:
if rowx[0] == rowy[0]:
if rowx[2] != rowy[2]:
print(rowx)
答案 0 :(得分:0)
您可以使用字典理解来消除基于索引0和2的重复项。
tupe = ((1, 'name1', 'Noah'),
(1, 'name2', 'Liam'),
(2, 'name3', 'Mason'),
(2, 'name4', 'Mason'),
(3, 'name5', 'Mason'))
print(tuple({(x[0], x[2]): x for x in tupe[::-1]}.values())[::-1])
输出:
((1, 'name1', 'Noah'), (1, 'name2', 'Liam'), (2, 'name3', 'Mason'), (3, 'name5', 'Mason'))
在重复的情况下,我反转了元组,该元组在结构中优先考虑元素的优先顺序,但是如果您不介意选择哪个重复项或希望对最后一个项目优先的话,可以跳过此组件。这是额外的工作。