在python中计算2d列表

use*_*774 3 python loops list multidimensional-array

如何计算在这个2d列表中"点击"的项目数?

grid = [['hit','miss','miss','hit','miss'],
     ['miss','miss','hit','hit','miss'],
     ['miss','miss','miss','hit','hit'],
     ['miss','miss','miss','hit','miss'],
     ['hit','miss','miss','miss','miss']]

battleships = 0
for i in grid:
    if i == "hit":
    battleships = battleships + 1
print battleships
Run Code Online (Sandbox Code Playgroud)

我知道代码是错误的,但它让我知道我想做什么我希望?

谢谢

fal*_*tru 11

用途list.count:

>>> ['hit','miss','miss','hit','miss'].count('hit')
2

>>> grid = [['hit','miss','miss','hit','miss'],
...      ['miss','miss','hit','hit','miss'],
...      ['miss','miss','miss','hit','hit'],
...      ['miss','miss','miss','hit','miss'],
...      ['hit','miss','miss','miss','miss']]
>>> [row.count('hit') for row in grid]
[2, 2, 2, 1, 1]
Run Code Online (Sandbox Code Playgroud)

而且sum:

>>> sum(row.count('hit') for row in grid)
8
Run Code Online (Sandbox Code Playgroud)