Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我需要返回前20个字数,但是我';我只能返回第一个字数,不能返回其余的。如果有人能帮忙的话_Python_Jupyter Notebook - Fatal编程技术网

Python 我需要返回前20个字数,但是我';我只能返回第一个字数,不能返回其余的。如果有人能帮忙的话

Python 我需要返回前20个字数,但是我';我只能返回第一个字数,不能返回其余的。如果有人能帮忙的话,python,jupyter-notebook,Python,Jupyter Notebook,我需要返回前20个字数。但是,我只能返回第一个字数,不能返回其余的 def print_top(all_text, top = 20): dict2 ={} word_d = word_dict(all_text) items = sorted(word_d.items(), key=get_count, reverse=True) for amounts in items[:20]: dict2 = (amounts[0], amounts[1

我需要返回前20个字数。但是,我只能返回第一个字数,不能返回其余的

def print_top(all_text, top = 20):
    dict2 ={}
    word_d =  word_dict(all_text)
    items = sorted(word_d.items(), key=get_count, reverse=True)
    for amounts in items[:20]:
        dict2 = (amounts[0], amounts[1])
        return dict2 

这应该会有所帮助。您的return语句在循环中。因此,在第一个元素之后返回值。请尝试下面的代码片段

def print_top(all_text, top = 20):
    word_d =  word_dict(all_text)
    items = sorted(word_d.items(), key=get_count, reverse=True)
    dict2 = {}  #Output Dict
    for amounts in items[:20]:
        dict2[amounts[0]] = amounts[1]
    return dict2  #-- > Outside the loop
显示为什么您的结果只返回1个

您可以使用1-liner完成您的任务,它是:

例如:

from collections import Counter
from pprint import pprint

data = """Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod 
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos 
et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata 
sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing 
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, 
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita 
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor 
sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore 
et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo 
dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum 
dolor sit amet.   

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, 
vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio 
dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla 
facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy 
nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat."""

words = [x.strip(",.!?") for x in data.split() if x.rstrip()]

dic = Counter(words).most_common(20)

pprint(dic)
输出:

[('et', 14),
 ('dolor', 8),
 ('Lorem', 7),
 ('ipsum', 7),
 ('sit', 7),
 ('amet', 7),
 ('sed', 7),
 ('diam', 7),
 ('dolore', 6),
 ('ut', 4),
 ('magna', 4),
 ('erat', 4),
 ('vero', 4),
 ('consetetur', 3),
 ('sadipscing', 3),
 ('elitr', 3),
 ('nonumy', 3),
 ('eirmod', 3),
 ('tempor', 3),
 ('invidunt', 3)]

你的输入看起来像什么?现在您的输出是什么样子的?你希望它看起来怎么样?
[('et', 14),
 ('dolor', 8),
 ('Lorem', 7),
 ('ipsum', 7),
 ('sit', 7),
 ('amet', 7),
 ('sed', 7),
 ('diam', 7),
 ('dolore', 6),
 ('ut', 4),
 ('magna', 4),
 ('erat', 4),
 ('vero', 4),
 ('consetetur', 3),
 ('sadipscing', 3),
 ('elitr', 3),
 ('nonumy', 3),
 ('eirmod', 3),
 ('tempor', 3),
 ('invidunt', 3)]