gpt4 book ai didi

python - 有人可以解释这个代码片段是如何工作的吗,我知道它找到了列表列表的转置,但我很难找到如何

转载 作者:行者123 更新时间:2023-11-28 22:05:36 25 4
gpt4 key购买 nike

def transposed(lists):
if not lists: return []
return map(lambda *row: list(row), *lists)

最佳答案

假设

list1 = [0, 1, 2]
list2 = [3, 4, 5]
list3 = [6, 7, 8]
lists = [list1, list2, list3]

然后调用

map(lambda *row: list(row), *lists)

相当于

map(lambda *row: list(row), list1, list2, list3)

来自documentation of map() ,我们可以看到它以下列方式将给定的 lambda 函数应用于列表的元素:

f = lambda *row: list(row)
return [f(list1[0], list2[0], list3[0]),
f(list1[1], list2[1], list3[1]),
f(list1[2], list2[2], list3[2])]

lambda 函数反过来只是将其参数列表转换为 Python list 对象,所以我们最终得到

return [[list1[0], list2[0], list3[0]],
[list1[1], list2[1], list3[1]],
[list1[2], list2[2], list3[2]]]

这是原始的 lists 转置。

关于python - 有人可以解释这个代码片段是如何工作的吗,我知道它找到了列表列表的转置,但我很难找到如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5019927/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com