在python中计算2d列表

在python中计算2d列表,python,list,loops,multidimensional-array,Python,List,Loops,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

如何计算此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
我知道代码是错误的,但它给出了我希望做什么的想法

谢谢

使用:

以及:


如果我有大量使用2D列表的代码,我会制作一个生成器,返回2D列表中的每个元素:

def all_elements_2d(l):
    for sublist in l:
        for element in sublist:
            yield element
然后你可以用它做其他事情,比如计算所有的“命中”字符串:

hits = sum(element == 'hit' for element in all_elements_2d(grid))

如果i==“hit”:
是错误的,
i
是一个列表。您能解释一下为什么[row.count('hit')for row in grid]在括号内吗?另外,嵌套列表中的计数方式如何?i、 例如,如果我写了print grid.count(“hit”),为什么它不能在所有的列表中计数?我知道我可以编写类似于grid[1]的东西。count将在第二个列表中计数,但您的代码如何访问所有嵌套列表的内容?@user2212774,是这样的list.count“不搜索嵌套列表。它只匹配它的项目。你应该解释代码,添加一些文本,而不是像那样发布。
def all_elements_2d(l):
    for sublist in l:
        for element in sublist:
            yield element
hits = sum(element == 'hit' for element in all_elements_2d(grid))
Transaction=[['Mango','Onion','Jar','Key-chain','Eggs','Chocolates'],
['Nuts','Onion','Jar','Key-chain','Eggs','Chocolates'],
['Mango','Apple','Key-chain','Eggs'],
['Mango','Toothbrush','corn','Key-chain','Chocolates'],
['corn','Onion','Key-chain','Knife','Chocolates']
]
count1=[['Mango',0],['Onion',0],['Jar',0],['Key-chain',0],['Eggs',0],
['Chocolates',0],['Nuts',0],['Apple',0],['Toothbrush',0],['corn',0],['Knife',0]]
for j in range(0,10):
 x=0
for i in range(0,5):
 x=x+Transaction[i].count(count1[j][0]);
count1[j][1]=x
print count1