如何在Python中对字符串中的集合成员进行计数?

时间:2017-11-03 18:35:50

标签: python string python-3.x

我有一个字母和字母簇列表,如下所示:

['x', 'str', 'a', 'pr']

我有一个字符串,我需要知道列表中任何成员的总出现次数:

stripe = 1,rope = 0 ,, rprpraxp = 4等

现在我可以循环计算每个成员出现次数的列表成员,然后总计它们,如下所示:

sublist = ['x', 'str', 'a', 'pr']
string = "rprpraxp"
inst = 0
for member in sublist:
    inst = inst + string.count(member)
print(inst)

但是我想知道我是否错过了一个更短,更简单,更直观和更Pythonic的方法来计算另一个字符串中的一组项目的成员,如:

inst = string.multicount(['x', 'str', 'a', 'pr'])

这样的事情存在吗?

感谢。

2 个答案:

答案 0 :(得分:2)

我会使用mapsum

sublist = ['x', 'str', 'a', 'pr']
string = "rprpraxp"
print(sum(map(string.count, sublist)))

答案 1 :(得分:0)

>>> S = "rprpraxp"
>>> L = ['x', 'str', 'a', 'pr']
>>> sum(S.count(e) for e in L if e in S)
4