函数使用2个参数对列表中的单词进行计数

2024-10-05 13:27:28 发布

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

嗨,我正在尝试创建一个函数来计算单词在文本列表中出现的次数,以生成结果为['a'、'1']、['b'、'4']、['c'、'5']。。。。。。你知道吗

这是我试图做的,但它不工作,我还没有学会计数功能。你知道吗

file_name = input('what file would you like to open? : ')
objecthere = open(file_name,'r')
argument = objecthere.read()
word_list = argument.split()


def word_frequency(words_from_list, word_frequency):
    new_list = []
    for word in word_list:
        if word in word_list:
            new_list.index(word)[1] += 1
        else:
            new_list.append([word,0])
    print(new_list)

我走对了还是有别的办法?你知道吗

编辑:我试图弄清楚如何使用函数调用的方式,单词\u频率(单词\u列表,3)将给我像['c'、'3']、['b'、'2']、['a'、'1']这样的前3个单词出现频率。任何帮助或意见将不胜感激!你知道吗


Tags: 函数namein文本列表newopenargument
3条回答

也许试试字典。你知道吗

def word_frequency(words_from_list, word_frequency):
    dic = {}
    for word in word_list:
        if word in dic:
            dic[word] += 1
        else:
            dic[word] = 1
    # You can convert tuple pairs to list and sort it like @glitch did.
    print(list(dic.items()))

正如gilch所建议的,我们可以使用收款台并拆分为列表

from collections import Counter
lst = 'what file would you like to open? : '.split()
Counter(lst)

我在手机上,所以我无法检查,但我相信在检查结果列表中的事件时,您的列表出现错误:

def word_frequency(words_from_list, word_frequency):
    new_list = [] 
    for word in word_list:
        if word in word_list:
            new_list.index(word)[1] += 1
        else:
            new_list.append([word,0])
    print(new_list)

更正:

def word_frequency(words_from_list, word_frequency):
    new_list = [] 
    for word in word_list:
        if word in new_list:
            new_list.index(word)[1] += 1
        else:
            new_list.append([word,0])
    print(new_list)

相关问题 更多 >

    热门问题