1

所以我有一个名为 a 的列表列表,我想将该列表中的项目的索引保存在一个元组中。例如,如果a[0][0] = 1,那么我想保存(0,0)并保存到该列表中。

现在我有ff代码:

z = []
for i in range(0, len(a)):
    for j in range(0, len(a)):
        if a[i][j] == '.':
            y = (i, j)
            z.append(y)

这非常有效,但我想摆脱嵌套,所以我想知道是否有另一种方法可以做到这一点而不会嵌套太深。

4

3 回答 3

3
from itertools import product
for i,j in product(range(len(a)), repeat=2):
    ...
于 2012-05-24T03:00:14.080 回答
1

您可以使用列表理解:

z = [(ii, jj) for ii, nested in enumerate(a) for jj, val in enumerate(nested) if val == '.']

但是,我认为您对 for 循环的使用更加清楚。

编辑:此外,range默认情况下从 0 开始。

于 2012-05-24T02:53:50.463 回答
0

像这样的一些bs:

 z = ((i,j) for i in range(0, len(a)) for j in range(0, len(a)) if a[i][j] == '.')

我可能把这个搞砸了——家里没有 python,但想法是你想要一个带有 if 的嵌套列表理解

于 2012-05-24T02:52:49.810 回答