如何计算二维数组中包含某个字符串的元素有多少?
How to calculate how many elements which contain a certain string in 2D array?
我有一个这样的二维数组:
[[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]
中)的元素的总和,以及[=12=中的'bbb'的总和].
在这个例子中,总和应该是3+2=5
,我只知道如何计算两个数组之间完全相同元素的总和,但不知道如何解决这个问题,谁能帮我解决这个问题?谢谢。
对于 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
如果您有更多的子列表和更多的字符串,您可以直接添加到前缀列表中。
我有一个这样的二维数组:
[[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]
中)的元素的总和,以及[=12=中的'bbb'的总和].
在这个例子中,总和应该是3+2=5
,我只知道如何计算两个数组之间完全相同元素的总和,但不知道如何解决这个问题,谁能帮我解决这个问题?谢谢。
对于 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
如果您有更多的子列表和更多的字符串,您可以直接添加到前缀列表中。