(python)如何从嵌套的列表理解中生成连续元素字符串而不是列表列表

2024-03-29 15:30:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试获取元素所在网格的索引列表!=0(最后一部分与问题无关,但我想我会添加它)

#creating the grid
grid = [[0 for x in range(4)] for y in range(5)]
#taking each elements index 
grid = [[[x,y] for x, Cell in enumerate(Row) if Cell == 0 ] for y, Row in enumerate(grid)]

print grid #indexes
[[(0, 0), (1, 0), (2, 0), (3, 0)], [(0, 1), (1, 1), (2, 1), (3, 1)], [(0, 2), (1, 2), (2, 2), (3, 2)], [(0, 3), (1, 3), (2, 3), (3, 3)], [(0, 4), (1, 4), (2, 4), (3, 4)]]

我现在需要选择一个随机索引。我打算用随机选择(),但是因为它是一个列表列表,所以这将是一个问题。我知道我可以做两个随机选择()但我更愿意理解列表的含义。你知道吗

谢谢

编辑:

我不用信用证也能做到:

index = []
for y, Row in enumerate(grid):
    for x, Cell in enumerate(Row):
        if self.grid[y][x] == 0:
            index.append((x,y))

Tags: theincreating网格元素列表forindex
1条回答
网友
1楼 · 发布于 2024-03-29 15:30:43

给你:

In[21]: [(x,y) for x in range(4) for y in range(5)]
Out[21]: 
[(0, 0),
 (0, 1),
 (0, 2),
 (0, 3),
 (0, 4),
 (1, 0),...

只要去掉你理解范围内的列表就可以建立所有的索引。你知道吗

编辑: 去掉代码中创建的中间列表

grid = [(x,y) for x, Cell in enumerate(Row) if Cell == 0 for y, Row in enumerate(grid)]

这应该管用。你知道吗

相关问题 更多 >