2024-09-22 14:25:54 发布
网友
我遇到了这样一个问题: 给定字符串列表,查找所有元素共有的字母数。比如说
mylist = ['abcdde', 'baccd', 'eeabg']
所需输出:2,因为所有元素只有'a'和'b'两个字母是公共的。 我的逻辑是以某种方式使用集合交集来查找公共元素。但我无法编写能够执行此操作的代码。 有人能帮忙吗。我还希望有任何其他逻辑可以更有效地完成任务(如果有)。 谢谢
2
'a'
'b'
您可以将列表划分为多个集合,并使用以下方法查找交点:
sets_list = [{letter for letter in string} for string in mylist] print(set.intersection(*sets_list))
在这里,您首先使用列表理解来构造集合列表,然后将这些集合传递到set.intersection函数will中,该函数将返回所需的值
set.intersection
您可以将每个字符串转换为set以查找唯一的元素,然后使用set.intersection查找所有集合中的公共元素
set
>>> set.intersection(*(set(i) for i in mylist)) {'a', 'b'}
要完全回答您的问题,您可以使用len来查找结果集中的元素数
len
>>> len(set.intersection(*(set(i) for i in mylist))) 2
您可以将列表划分为多个集合,并使用以下方法查找交点:
在这里,您首先使用列表理解来构造集合列表,然后将这些集合传递到
set.intersection
函数will中,该函数将返回所需的值您可以将每个字符串转换为
set
以查找唯一的元素,然后使用set.intersection
查找所有集合中的公共元素要完全回答您的问题,您可以使用
len
来查找结果集中的元素数相关问题 更多 >
编程相关推荐