从两个不同的列表中找到重复的数据

11 浏览
0 Comments

从两个不同的列表中找到重复的数据

我想要从两个不同的列表中找到重复的数据。结果应该显示出哪些数据是重复的。\n这是我的数据列表:\n

List1 = ['a', 'e', 'i', 'o', 'u']  
List2 = ['a', 'b', 'c', 'd', 'e']  

\n这个函数:\n

def list_contains(List1, List2): 
  # 在第一个列表中进行迭代 
  for m in List1: 
    # 在第二个列表中进行迭代 
    for n in List2:   
    # 如果有匹配项
      if m == n: 
        return m     
  return m

\n

list_contains(List1,List2)

\n我得到的结果是\'a\',但我期望的结果是\'a\',\'e\'。

0
0 Comments

问题:从两个不同的列表中找到重复的数据。

原因:代码中的return语句会导致函数退出,所以在第一个匹配项处就会返回结果。由于需要找到全部的匹配项而不仅仅是第一个匹配项,因此需要将它们存储到一个列表中,然后返回列表。

修复方法:

def list_contains(List1, List2): 
  result = []
  # 在第一个列表中进行迭代
  for m in List1: 
    # 在第二个列表中进行迭代
    for n in List2:   
      # 如果有匹配项
      if m == n: 
        result += m
  return result

以上修复方法会返回两个列表中重复的数据。

0