嵌套列表理解和if

问题描述 投票:-1回答:1

我正在尝试遍历包含我的游戏字段(TicTacToe)的列表。此列表如下所示:

['X', '_', '_']
['O', 'X', '_']
['_', 'O', 'X']

我想生成一个包含所有X或O的索引的列表。我的函数看起来像这样:

indicies = []
for x,y in enumerate(self.gameField):
                for b,c in enumerate(y):
                    if c == 'X':
                        indicies.append((x,b))

这很好,但是我想用列表理解来做同样的事情。我认为这可能会起作用:

indicies = [[(x,b) for b,c in enumerate(y) if c == 'X'] for x,y in enumerate(self.gameField)][0]

但是它没有按预期工作。

教程和StackOverflow不能帮助我理解嵌套列表的列表理解……我想我还不习惯Python的思维方式。

也许有人可以告诉我正确的方法或为我提供一个好的教程。

感谢您的支持!

python list-comprehension tic-tac-toe
1个回答
0
投票

您的循环的理解版本是

[(x,b) for (x,y) in enumerate(self.gameField)
     for (b,c) in enumerate(y) if c=='X']
© www.soinside.com 2019 - 2024. All rights reserved.