gpt4 book ai didi

python - 沿对角线列出嵌套列表中的元素

转载 作者:太空狗 更新时间:2023-10-29 21:37:23 24 4
gpt4 key购买 nike

<分区>

这是我的第一篇文章,我对这个很棒的网站还很陌生。

我想对角列出 3x3 数组中的所有元素:

L = [  [1, 2, 3],
[4, 5, 6],
[7, 8, 9] ]

预期输出:

[[7], [4, 8], [1, 5, 9], [2, 6], [3]]

此外,我如何将其推广到任何 N x N 数组?

编辑:我注意到之前有人问过这个问题,但我正在寻找一种无需导入 numpy 或任何库的方法。

Edit2:我的一位同学提供了这个解决方案,我最喜欢它:

由于您找到的对角线是从左下角开始的,因此您可以通过从正方形的右上角开始并在最后反转您的解决方案来做到这一点。我的方法是首先反转 L 中的每一行,然后将每个元素附加到其对应的对角线列表中。这里的见解是,您开始在每一行 K 中附加元素,而不是在最终列表的第一个子列表中,而是从索引 K 开始。例如,在将行 [4,5,6] 反转为行 [6,5, 4],我会将 6 附加到我的对角排序列表的第二个子列表(因为这是第二行),然后我将 5 附加到第三个子列表,然后我将 4 附加到第四个子列表。但是,如果此时我的对角线列表中没有第四个子列表,我会添加第四个空列表,然后用 4 填充它。

我的解释可能不太清楚,所以这是我的代码。

def diagonal(l):

L = l[:]
return_list = [[] for i in range(len(L))]

for line in range(len(L)):
L[line].reverse()
i = line

for elem in L[line]:
if i >= len(return_list):
return_list.append([])

return_list[i].append(elem)
i += 1

return_list.reverse()
return return_list

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