Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 给出一个元组列表:找到重复的元组并以最有效的方式移动它们_Python_Python 3.x_List_Tuples - Fatal编程技术网

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', '

我得到了两个包含一些数据的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', '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')]