gpt4 book ai didi

python - 取 1 个列表列表并生成 x 个正方形,其中 x 是 python 中列表的大小

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:09 25 4
gpt4 key购买 nike

所以我正在为一个类(class)做一个项目,它要求在你有一个 9x9 正方形的地方创建一个列表,然后创建一个新列表,其中有 9 组 3x3。

示例列表:

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

所以我希望我的新列表是:

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

我希望你能看到这个模式。

5 小时后,我基本上能够通过列表理解重新创建列表:

List = [[row[col] for col in range(len(list1))] for row in  list1]

然后我能得到的最接近的是:

List = [[row[col] for col in range(int(sqrtofsize)] for row in  list1]

它会打印出每个元素的前 3 个,然后我可以创建 3 个单独的列表,唯一的问题是如果你有一个 16x16 的 block ,它就不会工作。

另一个问题是我不能让它成为可订阅的。

我确定那里有信息,尽管我已经找了 5 个小时,但我就是想不通。

请要求澄清。

谢谢

最佳答案

def subsquare(L, N, x, y):
return [ [ L[i][j] for j in range(N*y, N*y+N) ] for i in range(N*x, N*x+N) ]

N = 3

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

subsqaure(L, N, 0, 0)
[[5, 3, 4], [6, 7, 2], [1, 9, 8]]

for x in range(N):
for y in range(N):
print x, y, subsquare(L, N, x, y)


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

关于python - 取 1 个列表列表并生成 x 个正方形,其中 x 是 python 中列表的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19021085/

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