从字典打印单词列表

2024-06-13 18:43:28 发布

您现在位置:Python中文网/ 问答频道 /正文

(抱歉问了这么长时间)

print\u most\u common()函数,该函数传递两个参数,一个包含单词及其相应频率的字典,例如

{"fish":9,  "parrot":8,  "frog":9,  "cat":9,  "stork":1,  "dog":4, "bat":9,  "rat":3}

和,一个整数,所需的字符数。该函数获取所需字符数的所有单词的列表,这些单词是字典的键,并且对于该长度的单词具有最高的频率。函数首先打印由单词长度(第二个参数)组成的字符串,后跟“letter keywords:”,然后打印所需长度(字典中的键)的所有单词的列表,这些单词的频率最高,后跟频率值。单词表必须按字母顺序排列。你知道吗

例如

word_frequencies = {"fish":9, "parrot":8, "frog":9, "cat":9,
                                           "stork":1, "dog":4, "bat":9, "rat":3}
print_most_common(word_frequencies, 3)
print_most_common(word_frequencies, 4)
print_most_common(word_frequencies, 5)

将打印:

3 letter keywords: ['bat', 'cat'] 9
4 letter keywords: ['fish', 'frog'] 9
5 letter keywords: ['stork'] 1

如何定义print\u most\u common(words\u dict,word\u len)函数?你知道吗


Tags: 函数most字典common单词catword频率
3条回答

这至少适用于python2实现,更新到3应该不难。你知道吗

Asav提供了一种获取字典的方法,其中包含单词_len及其对应的频率。然后可以从频率中检索最大值,从而检索具有该频率的单词列表。你知道吗

def print_most_common(words_dict, word_len):
    wl_dict = {k: v for k, v in words_dict.items() if len(k) == word_len}
    max_value = wl_dict[max(wl_dict, key=wl_dict.get)]
    res_list = [key for key,val in wl_dict.items() if val == max_value]
    print '%d letter keywords %s %d' % (word_len, res_list, max_value)

如果你想进一步分解或解释,一定要告诉我。你知道吗

下面是一个可能的解决方案:

  1. 获取所需长度的所有单词。你知道吗

    filtered_words = {k: v for k, v in words_dict.items() if len(k) == word_len}
    
  2. 获取该长度的最大计数。你知道吗

    max_count = max(filtered_words.values())
    
  3. 用这个计数过滤单词。你知道吗

    [k for k, v in filtered_words.items() if v == max_count]
    

完整代码

def print_most_common(words_dict, word_len):
  filtered_words = {k: v for k, v in words_dict.items() if len(k) == word_len}
  max_count = max(filtered_words.values())
  print word_len, 'letter keywords:', [k for k, v in filtered_words.items() if v == max_count], max_count

这个怎么样。你知道吗

freq_dict = {k: v for k, v in word_frequencies.items() if len(k) == word_len}

例如:

>> freq_dict = {k: v for k, v in word_frequencies.items() if len(k) == 3}
>> print(freq_dict)
>> {'bat': 9, 'cat': 9, 'dog': 4, 'rat': 3}

相关问题 更多 >