栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python List去重

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python List去重

前言

Python中对List中的元素进行去重操作

程序
  • 用set方法
# 去重后与原列表长度比较
lst = [1, 3, 5, 3, 4, 4, 2, 9, 6, 7]

set_lst = set(lst)

# set会生成一个元素无序且不重复的可迭代对象,也就是我们常说的去重
if len(set_lst) == len(lst):
    print('列表里的元素互不重复!')
else:
    print('列表里有重复的元素!')
  • 用append的方式
# 把原列表中的元素添加到一个新列表,确保新列表里不存在重复的元素,然后比较两个列表

lst = [1, 3, 5, 8, 9, 9, 0, 0, 3, 3]

new_list = []

for i in lst:
    if i not in new_list:
        new_list.append(i)

# 这样能确保新的列表里包含原列表里所有种类的元素,且元素互不重复

if len(new_list) == len(lst):
    print('原列表里的元素互不重复!')
else:
    print('原列表里有重复的元素!')
  • 用fromkeys的方法
# 创建一个字典,因为字典的键会自动去重,所以可以比较字典和原列表的长度,跟方法一很像

lst = [1, 3, 5, 8, 9, 9, 0, 0]

dic = {}.fromkeys(lst)

# 这种方法建立字典,会把列表里的元素当做字典的键,由于字典的键不能重复,所以会自动去重

if len(dic) == len(lst):
    print('列表里的元素互不重复!')
else:
    print('列表里有重复的元素!')
  • 对List 中元素出现的次数做统计
from collections import Counter  # 引入Counter

a = [1, 2, 3, 3, 4, 4]
b = dict(Counter(a))
print(b)
print([key for key, value in b.items() if value > 1])  # 只展示重复元素
print({key: value for key, value in b.items() if value > 1})  # 展现重复元素和重复次数

结果展示

{1: 1, 2: 1, 3: 2, 4: 2}
[3, 4]
{3: 2, 4: 2}
  • set去重顺序不会变
# 可以通过列表中索引(index)的方法保证去重后的顺序不变
li = [1, 2, 3, 3, 4, 4]
lis = list(set(li))
print(li)
print(lis)
lis.sort(key=li.index)
print(lis)

结果展示

[1, 2, 3, 3, 4, 4]
[1, 2, 3, 4]
[1, 2, 3, 4]
总结

写的可能有点粗造了!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498778.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号