如何计算2D数组中包含某个字符串的元素有多少?

时间:2019-07-31 23:14:16

标签: python arrays sum checksum

我有一个像这样的2D数组:

[[aaa-1-2,
  aaa-3-4,
  bbb-y-t,
  aaa-5-t],
[bbb-1-2,
  dfs-3-4,
  bbb-a-9,
  yui-5-t]]

我想编写一个函数或某种东西来获取包含'aaa'的元素的总和(在[aaa-1-2, aaa-3-4, bbb-y-t, aaa-5-t]中,以及在[bbb-1-2, dfs-3-4, bbb-a-9, yui-5-t]中的'bbb'的总和。

在此示例中,总和应为3+2=5,我只知道如何计算两个数组之间完全相同的元素之和,但不确定如何解决这个问题,有人可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

对于具有与n个子列表相对应的n个前缀的一般解决方案,可以使用enumerate找出您所在的子列表并查找要使用的适当前缀,然后对测试进行求和:

l = [["aaa-1-2", "aaa-3-4","bbb-y-t","aaa-5-t"],
     ["bbb-1-2", "dfs-3-4", "bbb-a-9","yui-5-t"]]

prefix = ['aaa', 'bbb']    
sum(prefix[i] in s for i, sub in enumerate(l) for s in sub)

# 5

如果您有更多的子列表和更多的字符串,则可以添加到前缀列表中。