python将某个列表按元素值分成多个子列表
1. 将原列表排序,当相邻元素不同时,对原列表进行切片。
def cutList1(orList): orList.sort() # 列表排序。默认从小到大 newList = [] # 空列表 n = 0 # 每次切片的起点 for k in range(len(orList)): if orList[k] == orList[-1]: # 由于排过序,则当orList[k]等于列表最后一个元素值时,可以切片后退出循环 newList.append(orList[n:]) # 从orList[k]取到最后 break # 退出循环 if orList[k] != orList[k+1]: # 由于排过序,相邻元素不等时,就表示切子列表的时候到了 subList = orList[n:k+1] # 切片 newList.append(subList) n = k+1 # n用于储存每次切片的起点 return newListmyList1 = [4, 2, 1, 2, 2, 1, 1, 5, 6, 5, 4]print (cutList1(myList1)) # [[1, 1, 1], [2, 2, 2], [4, 4], [5, 5], [6]] 2. set去重先,之后计算每个元素在原列表的个数,接着直接按每个元素的个数生成新列表,最后放在一个大列表中
def cutList2(orList): newSeqAfterSet = set(orList) # set去重。默认从小到大排序 newList = [] for k in newSeqAfterSet: kCount = orList.count(k) # 计算每个元素在元列表中的个数 kList = [k]*kCount # 生成新列表 newList.append(kList) return newList
myList2 = [4, 2, 1, 2, 2, 1, 1, 5, 6, 5, 4]print (cutList2(myList2)) # [[1, 1, 1], [2, 2, 2], [4, 4], [5, 5], [6]]
3. 拿列表第一个元素出来,放在临时变量中,之后循环原列表,取出相同的值,之后移除这个元素...之后循环这个操作
def cutList3(orList): copyList = deepcopy(orList) # copy列表用于移除元素,保持原列表完整性 newList = [] while 1: if copyList == []: # copy列表为空时退出while循环 break # 每次while循环都更新firstElement值,并将eleList重置为空 firstElement = copyList[0] # copy列表第一个元素 eleList = [] # 子列表 for ele in orList: if ele == firstElement: eleList.append(ele) copyList.remove(ele) # 移除元素。for循环完成后,原列表和第一个元素相等的所有元素已经取出 # 且从copy列表中移除了这些元素 newList.append(eleList) return newList myList3 = [4, 2, 1, 2, 2, 1, 1, 5, 6, 5, 4]print (cutList3(myList3)) # [[4, 4], [2, 2, 2], [1, 1, 1], [5, 5], [6]] 4. 从上面可以看出 4.1 方法1和2都将新生成的列表进行排序过,方法3则时按元素出现顺序排序 4.2 方法1会导致原列表被破环排序,使用前应该事先将其深复制一份 4.3 从效率上看,应该是方法2的运行时间最短。这个没有具体去看,留待以后...
转载于:https://www.cnblogs.com/lipx9527/p/11071427.html
python将某个列表按元素值分成多个子列表相关推荐
- python list分成多个_Python3 把一个列表按指定数目分成多个列表的方式
如果我们需要将一个列表按指定数目分成多个列表:比如[1,2,3,4,5,6,7,8,9,10]分成[1,2,3][4,5,6][7,8,9][10],我们可以建立一个列表分割的函数split_list ...
- python 随机获取列表的元素_练习 34 - 获取列表元素 - Learn Python 3 The Hard Way
练习 34 获取列表元素 列表(list)真的非常有用,前提是你要能获取到它们里面的内容.你已经能够按顺序遍历列表中的元素,但是如果你要取其中的第5个元素,你该怎么操操做?你需要知道如何获取一个列表里 ...
- Redis 笔记(04)— list类型(作为消息队列使用、在列表头部添加元素、尾部删除元素、查看列表长度、遍历指定列表区间元素、获取指定区间列表元素、阻塞式获取列表元素)
Redis 的列表是链表而不是数组.这意味着 list 的插入和删除操作非常快,时间复杂度为 O(1),但是索引定位很慢,时间复杂度为 O(n). 当列表弹出了最后一个元素之后,该数据结构自动被删除, ...
- 06-列表(列表的使用、列表中元素的提取--切片、列表的通用操作、列表的方法、列表的遍历-for循环和range()函数)
1. 序列 (sequence) 1.1 基本概念 序列是Python 中最基本的一种数据结构.序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置 (索引) 并且序列中的数据会按照添加 ...
- python二维列表每个子列表取一个元素的所有组合
这是一个汉字字符串: "银行卡测试" 我要求出他的拼音首字母组合, 预期:"yhkcs" 实际:"yhqcs" 没错,它含有一个多音字:卡 ...
- python中求二维数组元素之和_python二维列表求解所有元素之和
相信很多初学小伙伴都会遇到二维列表求解所有元素之和问题,下面给出两种两种常见的求和方法. 方法1: 思想:遍历整个二维列表元素,然后将所有元素加起来 1 def Sum_matrix(matrix): ...
- python全栈工程师百科_Python全栈工程师(列表、拷贝)
ParisGabriel 感谢 大家的支持 你们的阅读评价就是我最好的更新动力 我会坚持吧排版做的越来越好 每天坚持 一天一篇 点个订阅吧 灰常感谢 当个死粉也阔以 Python人工智能从 ...
- 升序排列python_Python3基础 sort 将一个列表中的值升序排列
镇场诗: ---大梦谁觉,水月中建博客.百千磨难,才知世事无常. ---今持佛语,技术无量愿学.愿尽所学,铸一良心博客. --------------------------------------- ...
- 每天一小时python官方文档学习(四)————数据结构之列表
终于进入到第五章数据结构部分了,python中常用的容器有列表.元组.集合和字典,今天主要了解的是最为常用的列表. 5. 数据结构 5.1. 列表的更多特性 对于列表的操作有很多,具体操作看官方文档就 ...
最新文章
- rstrip,strip,lstrip字符串内置函数
- jQuery滚动指定位置
- Spark源码和调优简介 Spark Core
- Source Insight 使用教程(1)——新建项目
- jquery获得指定元素坐标的方法
- python顺序执行 toggle_pythonkivymd:如何使toggle_nav_drawer()函数工作?
- python ssd目标检测_解读目标检测之SSD:Single Shot MultiBox Detector
- Oracle对表的基本操作
- 原生 javascript 操作 websocket
- uni-app运行到微信小程序模拟器
- 用Python自制一个百度一下,这操作可还行
- Linux ps命令简介
- PPT如何在投影不显示放映备注,在电脑上可以显示备注
- HTML 5 音频与视频标签
- ad域控查看ldap端口命令_工作笔记(一)LDAP和AD介绍以及使用LDAP操作AD域
- 矿大计算机考研上岸分数,这些考研院校,今年上岸更容易!初试占比高达70%!...
- 生活实用之清洗小龙虾
- aspx repeater 用法_Repeater控件的详细用法
- vue项目下拉框内容过长做一个滚动条的效果
- 大淘营淘宝店铺宝贝复制专家3.56 破解记录 不怕升级
热门文章
- ThinkPHP php 仿千图网源码_PHP微信表白墙源码 基于ThinkPHP框架开发
- linux内存管理分析 二,linux内存管理分析【二】
- linux 服务器 重新启动 慢,Linux系统启动缓慢解决方法[阮胜昌]
- python文本分析的开源工具_重磅开源:TN文本分析语言
- php excel 导入 显示,php Excel 导入
- php member limit,php 安全有关问题
- centos 对已有卷扩容_centos7 逻辑卷扩容
- php版本最低要求:5.4_Zabbix 5.0.0beta1版本初体验
- brew 安装java8_mac使用brew安装Java8
- django和flask用MD5加密密码