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