如果这两个列表之间没有任何共同点,则返回none

时间:2017-11-12 05:12:55

标签: python python-3.x

def common_elements(list1, list2):
result = []
seen = set()
for element in list1:
    if element in list2 and element not in seen:
        result.append(element)
        seen.add(element)
result.sort()
return result

print(common_elements([3,12,9,15],[2,-9,8,8,5,-13]))

3 个答案:

答案 0 :(得分:2)

您已经在使用一套,所以为什么不利用它:

>>> def common_elements(a, b):
...     return list(set(a).intersection(b))
...
>>> common_elements([3,12,9,15],[2,-9,8,8,5,-13])
[]
>>> common_elements([3,12,9,15],[2,-9,8,8,5,-13,9])
[9]

如果你真的想要归还无:

>>> def common_elements(a, b):
...    return list(set(a).intersection(b)) or None
...
>>> common_elements([3,12,9,15],[2,-9,8,8,5,-13])
>>> common_elements([3,12,9,15],[2,-9,8,8,5,-13,9])
[9]

答案 1 :(得分:1)

以下是filter操作的替代解决方案:

def common_elements(list1,list2):
   result = list(filter(lambda x: x in list2, list1))
   return result or None

答案 2 :(得分:-1)

试试这个。它:

  

如果这两个共同列表之间没有任何内容,则返回no

def common_elements(list1,list2):
   if [e for e in list1 if e in list2]==[]:
       return None

但如果你想要更简化:

def common_elements(list1,list2):
   pass
相关问题