Python如何重组嵌套元组:拆分日期与温度为两个独立子元组
元组重组简化实现方案
最优实现(最高效最简洁)
直接使用Python内置zip()函数做序列解包,核心逻辑仅1行,仅遍历原序列1次,效率远高于双重遍历的写法:
def data_reorganize(a): return tuple(zip(*a))
逻辑说明
*a会将原嵌套元组的所有子元组解包为独立参数传入zip()zip()会按位置聚合所有输入参数的对应位元素,返回内置迭代器- 外层套
tuple()将迭代器转为元组格式,完全匹配你需要的输出结构
验证示例
传入你给出的测试元组:
temp = ( ("mandag", 16.0), ("tirsdag", 13.0), ("onsdag", 14.0), ("torsdag", 13.0), ("fredag", 15.0), ("lørdag", 13.0), ) print(data_reorganize(temp))
输出结果:
(('mandag', 'tirsdag', 'onsdag', 'torsdag', 'fredag', 'lørdag'), (16.0, 13.0, 14.0, 13.0, 15.0, 13.0))
可选实现(可读性更强)
如果需要更直观的语义,也可以用生成器表达式写法,比原有双重遍历的写法更简洁:
def data_reorganize(a): return tuple(i[0] for i in a), tuple(i[1] for i in a)
内容的提问来源于stack exchange,提问作者LukeDalton
相关产品推荐
相关产品推荐

