You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现字典按键字母序排序,值列表按长度排序及扩展需求

解决方案

需求1:字典按键字母顺序排序,值列表按元素长度排序

直接对字典按键排序,再对每个值列表按元素长度排序:

# 按键的字母顺序生成有序字典(Python3.7+支持字典插入顺序保留)
sorted_dict = dict(sorted(test_dict.items()))
# 遍历每个键,对对应的值列表按元素长度排序
for key in sorted_dict:
    sorted_dict[key].sort(key=lambda x: len(x))

# 输出结果
print(sorted_dict)

运行后会得到预期结果:

{'best': ['six', 'ten'], 
 'gfg': ['One', 'six', 'three'], 
 'is': ['nine', 'eight', 'seven']}

需求2:值列表按长度排序,长度相同时随机排序

通过给同长度元素添加随机排序权重,实现同长度元素的随机排列:

import random

sorted_dict = dict(sorted(test_dict.items()))
for key in sorted_dict:
    # 排序key为(元素长度, 随机数),长度相同则按随机数排序
    sorted_dict[key].sort(key=lambda x: (len(x), random.random()))

print(sorted_dict)

每次运行时,同长度的元素顺序会随机变化,比如is对应的列表中,长度为5的seven/eight/nine每次排序结果都可能不同。

需求3:值列表完全随机排序

使用random.shuffle直接打乱每个值列表:

import random

sorted_dict = dict(sorted(test_dict.items()))
for key in sorted_dict:
    # shuffle原地打乱列表,无需返回值
    random.shuffle(sorted_dict[key])

print(sorted_dict)

此代码会保持字典按键的字母顺序排列,同时每个值列表的元素完全随机打乱。


内容的提问来源于stack exchange,提问作者Gabriel Yeow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:31:03