当前位置: 首页 > 知识库问答 >
问题:

如何在Python中计算列表/集合中的唯一单词,这有点嵌套/复杂

终祯
2023-03-14

我正在尝试计算列表/集合(或其名称)中的唯一单词,看起来像这样:

names = [[], [], [], [], [], [['John ', 'John '], ['Peter ']], [], [], [], [['Morgan']], [], [], []]

(如果你需要知道,这个列表是由一个匹配函数形成的,该函数在我电脑上的目录中的word文档中查找名称列表。您看到的空空间是与任何内容都不匹配的文档)

到目前为止我已经试过了

names1 = set(names)
len (names1)

Counter(names).keys() 
Counter(names).values()

但两者都不起作用。谢谢你的帮助

共有2个答案

拓拔野
2023-03-14

我试图让@jaideph Shekhar的评论更加明确,同时也包括您最初对Counter object的使用:

from collections import Counter

wordcount_dict = Counter()

for elem in names:
    for namelist in elem:
        wordcount_dict += Counter(namelist)

print(len(wordcount_dict))
乔伯寅
2023-03-14

我突然想到:

from collections import defaultdict

d = defaultdict(int) # default int is 0
names = [[], [], [], [], [], [['John ', 'John '], ['Peter ']], [], [], [], [['Morgan']], [], [], []]

def find(ele):
    if isinstance(ele, str):
        d[ele] += 1
    
    if isinstance(ele, list):
        for e in ele:
            find(e)
    
find(names)
print(d) # {'John ': 2, 'Peter ': 1, 'Morgan': 1}

它是一个递归函数,用于检查它是否是一个列表。如果是,则检查它是否为空,并继续再次调用自己。否则,它只会返回。如果它找到一个字符串,它只是将自己添加到字典中。

 类似资料:
  • 问题内容: 到目前为止,我的代码是这样的: 我想添加一个代码,该代码可以计算来自模式(此路径中的42个txt文件)中的唯一单词,但我不知道该怎么做。有谁能够帮助我? 问题答案: 在Python中计算对象的最佳方法是使用为此目的而创建的类。它的行为类似于Python字典,但计数时使用起来稍微容易一些。您只需传递对象列表,它就会自动为您计数。 Counter也有一些有用的方法,例如most_commo

  • 我需要计算下一个列表中的元素,我有一个listartif列表,对于它们的每个元素,我都有一个发现列表,对于每个发现对象,我都有一个名为isChecked的字段,所以我需要计算列表中所有检查过的发现。我已经做了下一个,但是我得到了列表中元素的总数。 有什么想法吗? 谢谢

  • 问题内容: 我已经在处理以下代码,但是似乎找不到一种方法来计算字谜列表中唯一值的数量。如果我只是打印出:我会得到列表的总价值,但其中包括重复项。 我试图将列表转换为集合,然后再删除掉重复项,但是还没有任何运气。 谢谢! 问题答案: 使用。仅包含唯一值:

  • 本文向大家介绍Python中如何复制一个嵌套列表,包括了Python中如何复制一个嵌套列表的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将看到在Python中复制嵌套列表的不同方法。让我们一一看。 首先,我们将使用循环复制嵌套列表。这是最常见的方式。 示例 输出结果 如果运行上面的代码,则将得到以下结果。 让我们看看如何使用列表理解和拆包运算符复制嵌套列表。 示例 输出结果 如果运行上

  • 问题内容: 我想复制一个2D列表,以便如果我修改一个列表,则不修改另一个列表。 对于一维列表,我只是这样做: 现在,如果我修改了b,a就不会修改。 但这不适用于二维列表: 如果我修改了b,a也会被修改。 我该如何解决? 问题答案: 对于不管尺寸多少都可以工作的更通用的解决方案,请使用:

  • 问题内容: 我不确定这是否可行,但我想计算表中唯一值的数量。我知道要计算我执行的唯一FolderID的数量: 但是我想对文件夹表中的文件夹标识和用户标识的唯一组合数进行计数。有没有办法做到这一点? 问题答案: