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

如何转置列表的列表?求简便实现及通用化方案

问题解答

1. 更简便的实现方法

Python内置的zip()函数可以直接完成转置操作,结合生成器表达式和tuple()转换,一行代码就能实现需求:

def list_of_list_to_tuple_of_tuple(ll):
    return tuple(tuple(col) for col in zip(*ll))

ll = [["a1","a2"],["b1","b2"],["c1","c2"]]
print(list_of_list_to_tuple_of_tuple(ll))  # 输出:(('a1', 'b1', 'c1'), ('a2', 'b2', 'c2'))

zip(*ll)会将列表的列表解包为多个独立列表,然后按位置提取元素生成转置后的迭代器,再将每个转置结果转为元组,最后整体转为元组即可。

2. 算法通用化适配n个元素的场景

上面的zip()方案本身就支持内部列表含任意n个元素的场景(前提是所有内部列表长度一致),无需额外修改代码。比如针对内部列表有3个元素的输入:

ll = [["a1","a2","a3"],["b1","b2","b3"],["c1","c2","c3"]]
print(list_of_list_to_tuple_of_tuple(ll))  # 输出:(('a1', 'b1', 'c1'), ('a2', 'b2', 'c2'), ('a3', 'b3', 'c3'))

原理是zip(*ll)会自动识别内部列表的长度,按位置依次提取每一列的元素,生成对应数量的转置结果,再统一转为元组结构,完美适配n个元素的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:35:52