如何重排并扩展字典中的列表使其长度统一?
字典列表按标准顺序重排并补0的解决方案
你需要将字典中每个值列表按照固定标准顺序重排,缺失位置用'0'填充,最终每个列表长度统一为7。
实现代码
# 定义固定的标准顺序模板 standard_order = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] # 待处理的字典 myDict = { "col-1": ['a', 'b', 'c', 'd', 'e', 'f', 'g'], "col-2": ['a', 'b', 'c', 'd', 'f', 'e'], "col-3": ['a', 'c', 'd', 'f'] # 测试用短列表 } # 遍历字典处理每个列表 for key, items in myDict.items(): item_set = set(items) # 按标准顺序生成新列表:存在的元素保留,缺失的填'0' myDict[key] = [item if item in item_set else '0' for item in standard_order] print(myDict)
输出结果
{ "col-1": ['a', 'b', 'c', 'd', 'e', 'f', 'g'], "col-2": ['a', 'b', 'c', 'd', 'e', 'f', '0'], "col-3": ['a', '0', 'c', 'd', '0', 'f', '0'] }
逻辑说明
- 先固定标准顺序作为结果模板,确保每个列表的元素位置统一
- 将原列表转为集合,是为了提升元素存在性的判断效率
- 通过列表推导式遍历标准模板,逐个匹配元素:存在则保留原元素,不存在则填充
'0',最终保证所有列表长度为7且顺序符合要求
内容的提问来源于stack exchange,提问作者joe
相关产品推荐
相关产品推荐

