我使用for循环遍历2D列表并删除所有内容,但只删除了一组重复项:
>>> one = [['red', 'rfg', 'erg', '234', '23423434234', 'F', '2014-01-11'],
['red', 'gertus', 'gengie', '234', '234234234234', 'F', '2014-01-11'],
['red', 'sdf', 'sdf', '23', '234234234234', 'F', '2014-01-11'],
['red', 'rfg', 'erg', '234', '23423434234', 'F', '2014-01-11'],
['red', 'gertus', 'gengie', '234', '234234234234', 'F', '2014-01-11'],
['red', 'sdf', 'sdf', '23', '234234234234', 'F', '2014-01-11']]
>>> for i in one:
one.remove(i)
>>> one
[['red', 'rfg', 'erg', '234', '23423434234', 'F', '2014-01-11'],
['red', 'gertus', 'gengie', '234', '234234234234', 'F', '2014-01-11'],
['red', 'sdf', 'sdf', '23', '234234234234', 'F', '2014-01-11']]
为什么remove()只删除一组重复项?我应该做一些不同的事情,因为有重复?你知道吗
你的问题提到了重复,这意味着你的问题是有点含糊不清,关于你实际上在寻找什么。我想您的意思是删除列表中的所有元素,因为它们是重复的。(如果你真的,真的想从一个全新的空名单开始,请看@Óscar López的答案。)
如果您只是想删除重复项,请考虑以下几点。您在遍历列表时正在更改它,这意味着您将无法删除列表中的所有元素。请尝试以下操作:
像这样看:
[i for i in one if one.count(i) < 2]
是list comprehension。列表理解创建一个新列表,而不是修改第一个列表。本质上,出于您在这里的目的,这意味着您不必担心列表在试图修改时会改变形状。你知道吗这个怎么样?你知道吗
那就简单多了。。。你知道吗
相关问题 更多 >
编程相关推荐