只是说我有一个str和一个strs列表,我想要计算str中包含的列表中有多少个strs。是否有一种优雅的方式来做到这一点?
例如,
l = {"foo", "bar", "what"}
str = "foobar"
输出为2.
我现在的方法是迭代列表并查看是否str.contains(str_in_list)
答案 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
表示检查item
是str
的子字符串。 for item in l
表示它应该遍历l
中的每个列表项(顺便说一下,惯例不是使用小写L表示变量名,因为它看起来与许多字体中的数字1几乎相同)。最后.count(True)
返回列表中True
的存在次数。