怎么快速的对列表进行去重呢,去重之后原来的顺序会不会改变呢?

去重之后顺序会改变

set去重

列表去重改变原列表的顺序了

l1 = [1,4,4,2,3,4,5,6,1]

l2 = list(set(l1))

print(l2) # [1, 2, 3, 4, 5, 6]

但是,可以通过列表中索引(index)的方法保证去重后的顺序不变。

l1 = [1,4,4,2,3,4,5,6,1]

l2 = list(set(l1))

l2.sort(key=l1.index)

print(l2) # [1, 4, 2, 3, 5, 6]

itertools.groupby

itertools.groupby

import itertools

l1 = [1,4,4,2,3,4,5,6,1]

l1.sort()

l = []

it = itertools.groupby(l1)

for k,g in it:

l.append(k)

print(l) # [1, 2, 3, 4, 5, 6]

fromkeys

l1 = [1,4,4,2,3,4,5,6,1]

t = list({}.fromkeys(l1).keys())

# 解决顺序问题

t.sort(key=l1.index)

print(t) # [1, 4, 2, 3, 5, 6]

通过删除索引

l1 = [1,4,4,2,3,4,5,6,1]

t = l1[:]

for i in l1:

while t.count(i) >1:

del t[t.index(i)]

# 解决顺序问题

t.sort(key=l1.index)

print(t) # [1, 4, 2, 3, 5, 6]

去重不改变顺序

建立新列表[]

l1 = [1,4,4,2,3,4,5,6,1]

new_l1 = []

for i in l1:

if i not in new_l1:

new_l1.append(i)

print(new_l1) # [1, 4, 2, 3, 5, 6]

reduce方法

from functools import reduce

l1 = [1,4,4,2,3,4,5,6,1]

func = lambda x,y:x if y in x else x + [y]

print(reduce(func,[[],]+l1)) # [1, 4, 2, 3, 5, 6]

python列表去重不改变顺序_Python列表中去重的多种方法相关推荐

  1. python字符串去重保持原顺序_python实现文本去重且不打乱原本顺序

    代码也是在网上找的,效率挺不错的,特别适合字典文件的去重 #coding=utf-8 import sys def open_txt(): #打开TXT文本写入数组 try: xxx = file(s ...

  2. python列表排序不改变顺序

    去重可以乱序 lis = [3, 1, 4, 3, 6, 3, 2, 4, 9, 1] lis2 = list(set(lis)) print(lis2) 去重不改变原始顺序 本质上 func1.fu ...

  3. python列表元素零的移动_python列表多行

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这个列表推导式共有145列: memberdef_list = and std: ...

  4. python列表元素下标是什么_python列表中元素插入位置总结

    python列表中元素插入位置总结 , python中列表去掉最后一个元素 ist.insert(index,obj) 列表与方法之间用点号相隔,括号内需要添入的参数分别是索引和要插入的元素. 要完成 ...

  5. python去除字符串两边的空格_Python去除字符串两端空格的方法

    <Python Cookbook(第2版)中文版>--1.5 去除字符串两端的空格 本节书摘来自异步社区<Python Cookbook(第2版)中文版>一书中的第1章,第1. ...

  6. python locust 能压测数据库_python locust 性能测试:HOOKS钩子方法

    为locust中不同类型的事件,提供的钩子方法: from locust import TaskSet, task, events, Locust from locust.clients import ...

  7. [转载] [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法

    参考链接: Python字符串| 十六进制 hexdigits 参考链接: Python的字符串Strings decode "专业人士笔记"系列目录: 创帆云:Python成为专 ...

  8. [转载] python 去除字符串的标点符号 用_Python成为专业人士笔记–String字符串方法

    参考链接: Python的字符串Strings decode "专业人士笔记"系列目录: 创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!​zhuanlan.z ...

  9. python导入自己写的函数_Python导入模块的几种方法

    Python 模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python 代 ...

最新文章

  1. 如何知道 CPU 是否支持虚拟化技术(VT)
  2. C++设计模式之装饰模式
  3. 学完计算机的感想300,计算机实训总结计算机实训心得300
  4. GridView 中设置某列,截取字符串加... 和 鼠标放上去字符全部显示
  5. java 注解的使用
  6. jQuery零基础入门——(三)层级选择器
  7. ASP.NET-第一天-数据库知识
  8. 计算机重启恢复到推荐分辨率,为什么重启之后电脑界面分辨率会变
  9. inttypes.h源码,VS编译需要
  10. Python写的一个文件生成器脚本
  11. 浙大PAT乙级练习1001
  12. Node.js菜鸟教程 思维导图
  13. win10计算机策略配置文件,Windows10怎么重置所有本地组策略设置
  14. html5移动端选择城市,移动端城市选择插件(原创)
  15. c# API串口通信
  16. 国内优秀的敏捷项目协作工具Leangoo[微信版]全新体验之后感
  17. webpack4踩坑——图片打包
  18. UltraISO 制作系统启动盘教程
  19. java无法安装路径无效_Java环境 jdk无法切换版本,修改path路径也无效
  20. S3C2410 UART驱动

热门文章

  1. Linux部署安装JDK
  2. Mybatis源码研究2:框架整体设计
  3. (转)关于数据库存储过程分页DatagridView BindingNavigator 控件的详细实现
  4. leetcode 1189 python
  5. C/C++排序算法(4)快速排序
  6. 电脑亮度多少对眼睛好_电脑显示器亮度多少合适呢??
  7. mysql 备份100G花费时间_利用xtrabackup 全量备份100G的数据恢复到单实例测试
  8. Oracle online系列(上):Online Move Datafile
  9. 墨天轮2022年新春发布会暨年度数据库颁奖盛典即将开启!
  10. MySQL高可用--MGR入门(2)组复制监控常用相关表