gpt4 book ai didi

python - 有人可以解释一下这个词频数吗?

转载 作者:行者123 更新时间:2023-12-04 10:05:34 24 4
gpt4 key购买 nike

我正在学习 MIT DS&A 算法类(class),在文档距离问题上,我们必须将文件解析为单词列表,然后计算文件中每个单词的频率。我很难理解以下功能:

def count_frequency(word_list):
"""
Return a list giving pairs of form: (word,frequency)
"""
L = []
for new_word in word_list:
for entry in L:
if new_word == entry[0]:
entry[1] = entry[1] + 1
break
else:
L.append([new_word,1])
return L
  • 为什么我们将 new_word 与 entry[0] 进行比较?
    一种。如果 L 为空怎么办?我们将 new_word 与什么进行比较?
    湾为什么我们专门将 new_word 与 entry[0] 进行比较?我们为什么不做类似的事情if new_word in LC。为什么我们需要使用break ?
  • 为什么是else前面 if 右侧的块 1 选项卡堵塞?当我尝试缩进 else 时块,会出现缩进错误。

  • 感谢您的帮助!

    最佳答案

    名单L由于 L.append([new_word,1]) 包含两项条目.如 L是空的for不会输入,所以entry[0]没有问题.
    entry[0]是一个字和entry[1]是一个计数。你不能说if new_word in L因为它不仅仅是一个字符串列表。
    break停止 for一旦找到一个词。
    for/else是 Python 中的东西。 else如果 for 运行无中断地完成(在本例中为 break)。如 new_word不在 L , for不会中断,新单词和计数 1 被添加到 L .

    仅供引用,内置 collections.Counter()会返回类似的结果。

    关于python - 有人可以解释一下这个词频数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61605038/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com