马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- list1 = [0, 1, 2, 5, 6, 5, 2, 3, 6, 5, 6, 5, 6, 5, 3, 2, 3]
- for each in list1:
- if list1.count(each) > 1:
- list1.remove(each)
- print(list1)
复制代码
用这段代码去掉列表中重复的字符,为什么输出结果是这样:
[0, 1, 5, 5, 5, 6, 5, 3, 2, 3]
有的去掉了,有的还在
本帖最后由 ouyunfu 于 2020-3-5 01:27 编辑
你代码的问题在于索引在变,列表也在变,有些元素直接被跳过了。运行以下代码应该 可以加深理解 - # -*- coding: utf-8 -*-
- list1 = [0, 1, 2, 5, 6, 5, 2, 3, 6, 5, 6, 5, 6, 5, 3, 2, 3]
- for each in list1:#list1在变
- print((list1.index(each),each))
- if list1.count(each) > 1:
- list1.remove(each)
- print(list1)
- print('#####################################################')
- list1 = [0, 1, 2, 5, 6, 5, 2, 3, 6, 5, 6, 5, 6, 5, 3, 2, 3]
- for each in list1[:]:#list1[:]不变
- print((list1.index(each),each))
- if list1.count(each) > 1:
- list1.remove(each)
- print(list1)
复制代码
|