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]))
答案 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