不使用导入库对指定列表按1、2、3顺序排序的方法
不依赖外部库的列表排序方案
嘿,这个需求轻松就能搞定,用Python自带的sorted()函数就行,完全不需要导入任何外部库。下面是具体的实现方法:
直接可用的代码
# 你的原始列表 original_list = [{'2': [{'cid': 26363}]}, {'1': [{'cid': 26363}]}, {'3': [{'cid': 26363}]}] # 按1、2、3的顺序排序 sorted_list = sorted(original_list, key=lambda item: int(next(iter(item.keys())))) # 输出排序后的结果 print(sorted_list)
我给你拆解每一步的逻辑:
- 提取字典的唯一键:每个列表元素都是只有单个键的字典,
next(iter(item.keys()))可以快速拿到这个唯一的键——因为item.keys()返回可迭代对象,转成迭代器后用next()取第一个元素,就是我们要的那个键。 - 转整数实现自然排序:把字符串类型的键(比如'1'、'2')转成整数,这样就能按照数字的自然顺序排序,避免字符串字典序的问题(比如如果直接用字符串排序,'10'会排在'2'前面,但我们要的是1、2、3的数字顺序)。
- 用key参数指定排序依据:
sorted()的key参数用来定义排序的参考值,这里我们把每个字典对应的整数键值作为依据,sorted()就会自动帮我们从小到大排序,正好符合你要的1、2、3的顺序。
运行后的结果
执行代码后,你会得到排序好的列表:
[{'1': [{'cid': 26363}]}, {'2': [{'cid': 26363}]}, {'3': [{'cid': 26363}]}]
如果之后你的列表里每个字典可能出现多个键(不过题目里明确是单个),那你可能需要额外处理,但当前场景下这个方法完全适用。
内容的提问来源于stack exchange,提问作者thomasopopop
相关产品推荐
相关产品推荐

