鱼C论坛

 找回密码
 立即注册
查看: 1634|回复: 7

Python列表排序问题

[复制链接]
发表于 2023-11-15 10:54:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教大家,如果Python中列表中包含列表如何进行排序
例如:a=[1,3,2,6,[7,3,5,1],3]
我使用sort他会报错,但是如果我用a[4].sort()他是可以进行排序的,不仅把【7,3,5,1】进行排序了,还将列表前的排序了,但是列表后的3是不参与排序的,这是什么问题呢?有什么办法能把这个a列表排序么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-15 11:21:36 | 显示全部楼层
本帖最后由 jackz007 于 2023-11-15 11:22 编辑

         列表中包含列表是无法进行正常排序的,以楼主的数据为例,a=[1,3,2,6,[7,3,5,1],3],其中,a[4] 是一个列表,a[4] 自然是可以自己排序的,a 中除 a[4] 外的元素自然也是可以单独排序的,但是,问题是,在排序后的结果中,原先的列表元素 a[4] 应该出现在 a 的什么位置(第几个元素)上呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-15 11:26:55 | 显示全部楼层
jackz007 发表于 2023-11-15 11:21
列表中包含列表是无法进行正常排序的,以楼主的数据为例,a=[1,3,2,6,[7,3,5,1],3],其中,a[4]  ...

目前我测试的是a[4]列表还在原位,列表前自动排序,列表后的数据不排序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-15 11:47:34 | 显示全部楼层
lyp学习 发表于 2023-11-15 11:26
目前我测试的是a[4]列表还在原位,列表前自动排序,列表后的数据不排序
b = a[: 4]
a[4] . sort()
b . sort()
b . append(a[4])
b . append(a[5])
print(b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-15 14:27:55 | 显示全部楼层

好的谢谢您,这个方法我也想出来了,目前在想怎么把列表后面的也参与排序。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-15 17:37:10 | 显示全部楼层
lyp学习 发表于 2023-11-15 14:27
好的谢谢您,这个方法我也想出来了,目前在想怎么把列表后面的也参与排序。

判断一下是不是列表,给它一个最大或最小值,就可以了:
sorted(a, key=lambda i: 9999 if isinstance(i, list) else i )
[1, 2, 3, 3, 6, [7, 3, 5, 1]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-11-15 20:23:43 | 显示全部楼层
阿奇_o 发表于 2023-11-15 17:37
判断一下是不是列表,给它一个最大或最小值,就可以了:

谢谢!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-15 22:09:57 | 显示全部楼层
没懂你的意思,你是想把所有数据统一排序?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 02:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表