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

如何将含元组的嵌套列表转换为字典列表?循环尝试失效求助

解决方法:将嵌套子列表批量转换为字典列表

我来帮你搞定这个问题!你之前的代码其实已经接近正确了,只是漏掉了把每个处理好的字典保存到结果列表里这关键一步~

核心问题分析

你单独处理单个子列表的逻辑完全没问题,但循环所有子列表时,只是执行了sorted(d.items())却没有将结果存入容器,所以最后无法得到包含所有字典的列表。

正确实现代码

from collections import defaultdict

# 你的原始嵌套列表z
z = [[(2, 81), (2, 52), (2, 53), (2, 86), (3, 4), (3, 5), (3, 72), (3, 9), (3, 16), (3, 17), (3, 18), (3, 84), (3, 73), (3, 41), (3, 63), (3, 30), (3, 31), (4, 48), (4, 5), (4, 38), (4, 7), (4, 8), (4, 95), (4, 11), (4, 12), (4, 16), (4, 19), (4, 53), (4, 54), (4, 57), (4, 27), (4, 30), (4, 37), (5, 51), (5, 67), (5, 6), (5, 65), (5, 11), (5, 15), (5, 19), (5, 21), (5, 24), (5, 36), (5, 71), (5, 31), (6, 83), (6, 71), (6, 76), (6, 98), (6, 78), (6, 16), (6, 19), (6, 20), (6, 22), (6, 87), (6, 52), (6, 27), (6, 86), (7, 49), (7, 33), (7, 60), (7, 96), (7, 43), (7, 12), (7, 14), (7, 15), (7, 17), (7, 46), (7, 22), (7, 28), (8, 32), (8, 34), (8, 98), (8, 40), (8, 96), (8, 10), (8, 44), (8, 13), (8, 84), (8, 21), (8, 87), (8, 28), (8, 30), (9, 65), (9, 40), (9, 14), (9, 55), (9, 25)], [(2, 32), (2, 3), (2, 39), (2, 8), (2, 9), (2, 10), (2, 43), (2, 13)], [(1, 85), (1, 22), (1, 23), (1, 56), (1, 25), (1, 70), (1, 42)], [(1, 79), (1, 17), (1, 67)], [(1, 54), (1, 6), (1, 7), (1, 92), (1, 10)], [(1, 3), (1, 4)], [(0, 91), (0, 92)], [(0, 88), (0, 89)], [(0, 70), (0, 74), (0, 83)], [(0, 66), (0, 68), (0, 69)], [(0, 26), (0, 29), (0, 33), (0, 35), (0, 38), (0, 41), (0, 45), (0, 50), (0, 51), (0, 55), (0, 57), (0, 59), (0, 65)], [(0, 24)], [(0, 14), (0, 15), (0, 20)],[(0, 13)], [(0, 9), (0, 11)], [(0, 7), (0, 8)], [(0, 5), (0, 6)], [(0, 3), (0, 4)]]

# 初始化空列表,用来存放所有处理后的字典
dict_list = []

# 遍历z中的每个子列表
for sublist in z:
    # 初始化defaultdict用于收集键值对
    d = defaultdict(list)
    for k, v in sublist:
        d[k].append(v)
    # 将排序后的键值对转换为普通字典(Python3.7+字典默认保持插入顺序,这里按键排序)
    sorted_dict = dict(sorted(d.items()))
    # 将处理好的字典添加到结果列表
    dict_list.append(sorted_dict)

# 查看结果
print(dict_list)

关键改进点

  • 新增了dict_list空列表,专门用来存储每个子列表处理后的字典
  • 去掉了没必要的numpy.arange,直接遍历z的子列表更简洁直观
  • 将sorted(d.items())转换为字典并添加到结果列表,最终得到你需要的字典列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:29:03