Python2.7如何将动态数量列表合并为元组列表 有什么pythonic快速方法?
解法说明
你给出的期望结果存在笔误,第二个元组的第二个元素应为{'b2': 'b2_1'},按「将每个子列表存储的字典,拆分为单键字典后按位置对应组合为元组」的逻辑,符合Python 2.7规范的Pythonic写法如下:
# 提取所有内部存储的字典 inner_dicts = [sublist[0] for sublist in original] # 每个字典拆分为单键字典的列表,sorted保证键的顺序固定(Python2.7字典默认无序) split_dicts = [[{k: v} for k, v in sorted(d.items())] for d in inner_dicts] # 按位置打包为元组,Python2.7中zip直接返回列表 result = zip(*split_dicts)
验证输出
代入你给出的original数据,输出结果为:
[ ({'a1': 'a1_1'}, {'b1': 'b1_1'}), ({'a2': 'a2_1'}, {'b2': 'b2_1'}) ]
特性说明
- 支持动态数量的输入字典,只要每个字典的键数量一致即可正常运行
- 无需引入额外依赖,完全兼容Python 2.7语法规范
- 列表推导式+内置函数组合,符合Pythonic编码习惯
内容的提问来源于stack exchange,提问作者user966660
相关产品推荐
相关产品推荐

