【发布时间】:2018-10-01 21:13:15
【问题描述】:
我想使用此结构删除列表中的重复元素,但当我使用此代码时列表保持不变。谁能帮帮我?
例如,item=[1,2,3,4,5,6,7,8,9,1,2,6,7]
def duplicated(item):
i=0
j=0
while i<len(item):
while j<len(item):
if item[j]==item[i] and i!=j:
del item[j]
j+=1
i+=1
return item
【问题讨论】:
-
无复制。一些号码被删除;在函数之后它绝对不会改变。您是在问为什么它不删除 all 重复项?
-
是的,抱歉,我在问为什么它没有删除所有重复项
-
尝试运行它,例如pythontutor.com/visualize.html#mode=edit - 一些 确实 被删除,但你的逻辑是错误的,所以不是所有对都进行比较。
-
How to remove items from a list while iterating? 的可能重复项或正如 Aran-Fey 在我的(已删除)答案中提到的那样:how-do-you-remove-duplicates-from-a-list-whilst-preserving-order
-
您在迭代列表时正在修改它。看看骗子为什么它不起作用。
标签: python