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 に答える