Python 给出一个元组列表:找到重复的元组并以最有效的方式移动它们
我得到了两个包含一些数据的Python列表:Python 给出一个元组列表:找到重复的元组并以最有效的方式移动它们,python,python-3.x,list,tuples,Python,Python 3.x,List,Tuples,我得到了两个包含一些数据的Python列表: list_first = [(1, 2, 'Adam', 'Men', '3.5', '1'), (1, 2, 'Ewa', 'Women', '2', '1'), (1, 2, 'Adam', 'Men', '4', '2')] second_list = [(2, 5, 'Jack', 'Men', '3.5', '1'), (1, 3, 'Chris', '
list_first = [(1, 2, 'Adam', 'Men', '3.5', '1'),
(1, 2, 'Ewa', 'Women', '2', '1'),
(1, 2, 'Adam', 'Men', '4', '2')]
second_list = [(2, 5, 'Jack', 'Men', '3.5', '1'),
(1, 3, 'Chris', 'Women', '5', '2'),
(10, 22, 'Adam', 'Men', '42', '11')]
现在,我想在第二个_列表中查找重复项,但只包含Name和Sex字段,因此在上面的示例中:
第二个列表中的副本是Adam。亚当,伙计们
现在我想把这个元组1,2,‘亚当’,‘男人’,‘4’,‘2’移动到第一个列出来
我试着用以下方法来实现:
没有成功:
name_fy = [(item[2] for item in list_first) and
(item[3] for item in list_first)]
name_sy = [(item[2] for item in list_second) and
(item[3] for item in list_second)]
for i in name_fy :
for j in name_sy :
if i == j:
# move to list_first
您可以将单个列表理解与以下内容结合使用: 输出:
[(1, 2, 'Adam', 'Men', '3.5', '1'), (1, 2, 'Ewa', 'Women', '2', '1'), (1, 2, 'Adam', 'Man', '4', '2'), (10, 22, 'Adam', 'Man', '42', '11')]
[(2, 5, 'Jack', 'Men', '3.5', '1'), (1, 3, 'Chris', 'Women', '5', '2')]
我应该如何从第二个列表中删除我在列表中添加的重复项?@WaterInTheButtle请查看我最近的编辑。这可以通过使用过滤器来实现。我欠你一个人情!谢谢您可以使用单一理解首先插入到列表中,然后从第二个列表中删除。如果anyx[2]==k[1][2]和x[3]==k[1][3]和第二个_列表,则在第二个_列表中为k列出_first+=[k[1]。在第二个_列表中为x列出popk[0]
[(1, 2, 'Adam', 'Men', '3.5', '1'), (1, 2, 'Ewa', 'Women', '2', '1'), (1, 2, 'Adam', 'Man', '4', '2'), (10, 22, 'Adam', 'Man', '42', '11')]
[(2, 5, 'Jack', 'Men', '3.5', '1'), (1, 3, 'Chris', 'Women', '5', '2')]