我有一个 2 项元组的列表,我想将它们转换为 2 个列表,其中第一个包含每个元组中的第一个项目,第二个列表包含第二个项目。
例如:
original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)] # and I want to become... result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4])
有没有内置函数可以做到这一点?
zip是它自己的逆!前提是您使用特殊的 * 运算符。
zip
>>> zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4)]) [('a', 'b', 'c', 'd'), (1, 2, 3, 4)]
它的工作方式是zip使用参数调用:
zip(('a', 1), ('b', 2), ('c', 3), ('d', 4))
’除了参数是zip直接传递给的(转换成元组之后),所以不用担心参数数量太大。