Python如何解包字典内列表存储的嵌套元组对
实现方案
你需要的功能可以直接通过Python内置的列表推导式完成,无需引入任何第三方库。
核心逻辑是遍历字典每个值对应的列表,将列表中每一组嵌套的二元元组展开,把内部元组按顺序拼接成新的列表即可。
完整代码示例
# 示例字典 dic = { (0, 5): [((0, 5), (0, 1)), ((0, 5), (0, -3))], (1.0, 0): [((1, 1), (2, 2)), ((1, 1), (3, 3)), ((1, 1), (-2, -2)), ((2, 2), (1, 1)), ((2, 2), (3, 3)), ((2, 2), (-2, -2)), ((3, 3), (1, 1)), ((3, 3), (2, 2)), ((3, 3), (-2, -2)), ((-2, -2), (1, 1)), ((-2, -2), (2, 2)), ((-2, -2), (3, 3))] } # 遍历字典更新值 for key, value in dic.items(): dic[key] = [t for pair in value for t in pair] # 输出验证 print(dic)
代码说明
- 列表推导式
[t for pair in value for t in pair]的执行逻辑:- 先遍历原列表中的每一个
pair(即两个元组构成的嵌套元组,比如((0,5), (0,1))) - 再遍历每个
pair里的两个内部元组,按顺序加入新列表
- 先遍历原列表中的每一个
- 不需要额外处理原地修改问题,直接给原字典的key赋新值即可,符合你后续不需要原结构的需求。
内容的提问来源于stack exchange,提问作者MarkS
相关产品推荐
相关产品推荐

