所建议的解决方案S.Mark和SilentGhost通常告诉你应该如何在一个Python化的方式来完成,但我认为从知道为什么你的解决方案不工作,你也可能受益。问题在于,一旦您在两个列表中找到第一个公共元素,就只返回该单个元素。您可以通过创建一个result列表并收集该列表中的常见元素来解决您的问题:
def common_elements(list1, list2):
result = []
for element in list1:
if element in list2:
result.append(element)
return result
使用列表推导的更短版本:
def common_elements(list1, list2):
return [element for element in list1 if element in list2]
但是,正如我说的那样,这是一种非常低效的方式-Python的内置集合类型在内部用C实现时效率更高。