python从另外两个列表创建一个列表

时间:2014-03-23 20:31:13

标签: python list

我是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  

4 个答案:

答案 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转换为集合可以提高效率