Python 一个用于迭代两个列表并从一个列表中删除项(如果另一个列表中存在)的线性程序

Python 一个用于迭代两个列表并从一个列表中删除项(如果另一个列表中存在)的线性程序,python,Python,有两个列表: one = ['aaa', 'bbb', 'ccc', 'ddd', 'eee'] two = ['aaa', 'qqq', 'rrr', 'bbb', 'zzz'] 目前,我搜索了这两个文件,如果其中一个文件存在于另一个文件中,它将被删除,如下所示: for i in one: for j in two: if j in i: one.remove(i) 这是回报 a = ['ccc', 'ddd', 'eee'] 只是想知道

有两个列表:

one = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
two = ['aaa', 'qqq', 'rrr', 'bbb', 'zzz']
目前,我搜索了这两个文件,如果其中一个文件存在于另一个文件中,它将被删除,如下所示:

for i in one:
    for j in two:
        if j in i:
            one.remove(i)
这是回报

a = ['ccc', 'ddd', 'eee']
只是想知道是否有一种比我现在的状态更像蟒蛇的方式?

只需使用集合:

a = list(set(one) - set(two))
给出预期结果。

只需使用集合:

a = list(set(one) - set(two))
给出预期结果。

使用
filter()
内置函数:

one = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
two = ['aaa', 'qqq', 'rrr', 'bbb', 'zzz']

list(filter(lambda a: a not in two, one))
使用
filter()
内置函数:

one = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
two = ['aaa', 'qqq', 'rrr', 'bbb', 'zzz']

list(filter(lambda a: a not in two, one))

a
是如何初始化的?
i中的j
i
j
是字符串时,检查
j
是否是
i
的子字符串。我猜你实际上不想那样。[如果我不在两个里面,我就在一个里面]
a=[I如果我不在两个里面,我就在一个里面]
a
a
是如何初始化的?
j在I
中,当
I
j
是字符串时,检查
j
是否是
I
的子字符串。我想你实际上并不想这样。[如果我不在两个里面,我就在一个里面]
a=[I如果我不在两个里面,我就在一个里面]
这并不能保证能维持秩序。他并没有要求它被订购,只是为了在一行程序中获得这种差异。OP想要从列表中删除项目。对我来说,这意味着未移除项目的顺序是保持不变。但是OP应该澄清。
a=list(set(one)。difference(set(two))
在这里也起作用。这不能保证维持订单。他没有要求订单,只是为了在一行中获得差异。OP想要从列表中删除项目。对我来说,这意味着未移除项目的顺序是保持不变。但是OP应该澄清。
a=list(一组)。差异(二组))
在这里也起作用。