如何检查每个字母是否在多个字符串中?
我有一个数组:
arr = ['ab', 'ac']
我想检查arr 中的所有项目重复了哪些字母。对于上述,“a”在两者中。然后我想打印“1”。
另一个例子是:
arr = ['abc', 'dca', 'ac']
'a' 和 'c' 是通用的,所以我会打印 2。
知道如何做到这一点吗?
回答
您可以对每个字符串的字母进行集合,并确定所有集合的交集:
arr = ['abc', 'dca', 'ac']
common = set.intersection(*(set(string) for string in arr))
print(common)
# {'a', 'c'}
print(len(common))
# 2
set.intersection接受任意数量的参数,我们使用*来解包生成集合的生成器表达式。