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

如何在Python中按自定义字符顺序对字符列表排序?

按自定义字符列表排序Python列表

解法思路

要实现按指定的自定义顺序排序,核心是给每个待排序元素分配对应自定义顺序的「权重值」——也就是该元素在custom_sort_order列表中的索引位置。先把custom_sort_order转换成元素到索引的字典,快速查找每个元素的权重,再用sorted()函数的key参数指定这个权重进行排序即可。

代码实现

L1 = ['1', '3', '4']
L2 = ['2', '3', '5']
custom_sort_order = ['2', '5', '3', '1', '4']

# 转换为元素到索引的字典,用于快速获取排序权重
sort_weight = {item: idx for idx, item in enumerate(custom_sort_order)}

# 按自定义顺序排序
L1_result = sorted(L1, key=lambda x: sort_weight[x])
L2_result = sorted(L2, key=lambda x: sort_weight[x])

print(L1_result)  # 输出: ['3', '1', '4']
print(L2_result)  # 输出: ['2', '5', '3']

补充说明

  • sort_weight字典将custom_sort_order中的元素映射到对应索引,比如'2'对应0、'5'对应1,以此类推,排序时会按索引从小到大排列元素。
  • 如果待排序列表中存在custom_sort_order未包含的元素,可以用sort_weight.get(x, 999)这类写法设置默认权重(示例中999可替换为任意大数值,让这类元素排到末尾),避免触发KeyError。

内容的提问来源于stack exchange,提问作者Abhishek Arora

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:22:35