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

Python中按指定列表位置对齐字典值的实现需求

解决Python字典列表对齐填充问题

需求说明

需要将字典中每个键对应的列表,按照指定的my_list元素顺序对齐:每个位置上如果当前列表存在my_list对应元素则保留,否则用'-'填充。已知字典中所有元素均存在于my_list中。

示例输入

my_list = ['a', 'b', 'c', 'd']
d = {'x':['a', 'b', 'd'], 'y':['a', 'c'], 'z': ['d', 'b']}

期望输出

{'x':['a', 'b', '-', 'd'], 'y':['a', '-', 'c', '-'], 'z':['-', 'b', '-', 'd']}

解决方案

直接通过元素集合查找+列表推导式实现,兼顾可读性和效率:

my_list = ['a', 'b', 'c', 'd']
d = {'x':['a', 'b', 'd'], 'y':['a', 'c'], 'z': ['d', 'b']}

result = {}
for key, values in d.items():
    value_set = set(values)
    # 按my_list顺序生成对齐后的列表
    aligned_values = [val if val in value_set else '-' for val in my_list]
    result[key] = aligned_values

print(result)

代码说明

  • 将每个键对应的列表转为集合value_set,把元素存在性判断的时间复杂度从O(n)优化到O(1),处理大规模数据时性能更优。
  • 使用列表推导式遍历my_list的每个元素,快速生成对齐后的列表,代码简洁直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:57:28