【问题标题】:How to calculate how many elements which contain a certain string in 2D array? [closed]如何计算二维数组中有多少个包含某个字符串的元素? [关闭]
【发布时间】:2023-03-16 17:17:01
【问题描述】:

我有一个这样的二维数组:

[[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,我只知道如何计算两个数组之间完全相同的元素的总和,但不知道如何解决这个问题,有人可以帮我解决这个问题吗?谢谢。

【问题讨论】:

  • 我没有看到问题。只需分别计算每个总数,然后将它们加在一起。你说你知道如何做第一部分。
  • 是否有更复杂的地方,比如搜索字符串是动态的,或者顶级数组中元素的数量是可变的?
  • 我不知道你是如何得到 3+2 = 5 的,也不知道你想要完成什么。请提供更多详细信息。
  • HI @dreamzboy 在第一个一维数组中,有三个元素包含'aaa',在第二个一维数组中,有两个元素包含'bbb'

标签: python arrays sum checksum


【解决方案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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 2023-03-22
    • 2023-03-10
    • 2012-05-15
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 2013-11-01
    相关资源
    最近更新 更多