如何通过某些规则计算列表中的数字?

时间:2017-08-16 17:44:40

标签: python string

只是说我有一个str和一个strs列表,我想要计算str中包含的列表中有多少个strs。是否有一种优雅的方式来做到这一点?

例如,

l = {"foo", "bar", "what"}
str = "foobar"

输出为2.

我现在的方法是迭代列表并查看是否str.contains(str_in_list)

4 个答案:

答案 0 :(得分:2)

这是一个简单的例子,

l = ["foo", "bar", "what"]
st = "foobar"

count = 0
for _string in l:
    if _string in st:
        count += 1

print(count)

答案 1 :(得分:2)

sum(s in my_string for s in l)

答案 2 :(得分:1)

另一种解决方案

count = sum(item in str for item in l)

答案 3 :(得分:0)

使用计数:

l = {"foo", "bar", "what"}
str = "foobar"
c = [item in str for item in l].count(True)

在我看来,这是最易读的版本。 item in str表示检查itemstr的子字符串。 for item in l表示它应该遍历l中的每个列表项(顺便说一下,惯例不是使用小写L表示变量名,因为它看起来与许多字体中的数字1几乎相同)。最后.count(True)返回列表中True的存在次数。