我是python的初学者,我正在尝试编写一个包含两个列表的函数, 并且对于第一个列表中的每个项目,查看第二个列表,并比较每个列表 第一个列表中的项目,第二个列表中的每个项目。它需要返回一个包含all的新列表 未出现在第一个列表中的项目。
例如,给出一个列表:
list1 = ['yellow', 'blue', 'green']
和第二个清单:
list2 = ['orange', 'green', 'blue', 'pink', 'yellow']
它应该只返回list2中不在list1中的项的列表,如下所示:
['orange', 'pink']
我写了很多函数,但是他们不断返回重复项,我真的很感激任何帮助!
def different_colors(list1, list2):
newlist = []
for color in list1:
newlist = []
for color2 in list2:
if color1 != color2:
newlist.append(color2)
return newlist
答案 0 :(得分:3)
使用set
s:
>>> set(list2) - set(list1)
{'orange', 'pink'}
答案 1 :(得分:2)
尝试使用套装:
>>> list(set(list2) - set(list1))
['orange', 'pink']
答案 2 :(得分:1)
您可以使用python集(http://docs.python.org/2/library/stdtypes.html#set):
s1 = set(list1)
s2 = set(list2)
list(s2.difference(s1))
答案 3 :(得分:0)
它比你想象的要简单
newlist = []
for color in list2:
if color not in list1:
newlist.append(color2)
return newlist
将list1
转换为集合可以提高效率