python的list如何去掉重复元素
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要去除python列表中的重复元素,有很多方法
直观方法
先建立一个新的空列表,再遍历原来的列表,利用逻辑关系not in 来去重。
numbers = [1,7,3,2,5,6,2,3,4,1,5]
new_numbers = []
for x in numbers:
if x not in new_numbers:
new_numbers.append(x)
print(new_numbers)
此方法过程复杂,但是保证了列表的顺序性。
使用set()的自动去重功能
numbers = [1,7,3,2,5,6,2,3,4,1,5]
new_numbers = list(set(numbers))
print(new_numbers)
此方法将列表转化为集合再转化为列表,利用集合的自动去重功能。简单快速。缺点是:使用set方法无法保证去重后的顺序。 但是,可以通过列表中索引(index)的方法保证去重后的顺序不变。
numbers = [1,7,3,2,5,6,2,3,4,1,5]
new_numbers = list(set(numbers))
new_numbers.sort(key=numbers.index)
print(new_numbers)
问题来源于python学习网