Python计算列表中其他字符串列表中不重复的子字符串的数量

2023-11-24

我有两个清单:

main_list = ['Smith', 'Smith', 'Roger', 'Roger-Smith', '42']
master_list = ['Smith', 'Roger']

我想计算在 main_list 字符串中从 master_list 中找到字符串的次数,而不是计算同一项目的两次。

示例:对于上面的两个列表,我的函数的结果应该是 4。“Smith”可以在 main_list 中检索 3 次。 'Roger 可以找到 2 次,但由于 'Roger-Smith' 中已经找到了 'Smith',所以这一次不再计算在内,所以 'Roger' 只算 1 次,总共 4 次。

我为了解而编写的函数如下,但我认为有一种更快的方法来做到这一点:

def string_detection(master_list, main_list):
    count = 0
    for substring in master_list:
        temp = list(main_list)
        for string in temp:
            if substring in string:
                main_list.remove(string)
                count+=1
    return count

一个内衬

>>>sum(any(m in L for m in master_list) for L in main_list)
4

迭代一遍main_list并检查是否any的值来自master_list都在那个字符串中。这将为您留下一个布尔值列表。它会在找到一个后停止,因此只为每个字符串的计数添加 1。方便sum计算所有的Trues 给你计数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python计算列表中其他字符串列表中不重复的子字符串的数量 的相关文章

随机推荐