从python中的列表中获取前25个项目
Posted
技术标签:
【中文标题】从python中的列表中获取前25个项目【英文标题】:Getting the top 25 items from a list in python 【发布时间】:2018-07-15 23:46:09 【问题描述】:我有一个 csv 数据文件。格式如下:
我需要从这个文件中生成一个前 25 个国家的排序列表。我正在寻找的输出是中国、俄罗斯、法国、德国、加拿大。
我是 Python 新手。我查看了有关 *** 和各种教程的问题。我正在寻找有关如何读取文件、写入文件等的资料,但我没有找到任何可以指导如何操作数据以从列表中生成前 25 个国家/地区的内容。
【问题讨论】:
前 25 名的标准是什么?文件共有多少个国家? 欢迎来到 ***。请阅读并遵循帮助文档中的发布指南。 on topic 和 how to ask 在这里申请。 *** 不是设计、编码、研究或教程服务。 你只是在数一个国家出现的次数吗?听起来你想用csv
模块加载,然后用collections.Counter
计数,但我们不会为你编写代码。
@ShadowRanger 我没有要求任何人为我编写代码。我在问方向。 cvs 模块和 collections.Counter,为我提供了一些方向。谢谢你。非常感谢。
您不希望我们为您编写代码真是太好了;您可能会惊讶于有多少人确实期望我们这样做。但是,我不确定您的具体问题是什么。如果您在实施 ShadowRanger 的建议时遇到困难,请发布您的代码尝试,说明您的代码与您期望的不同之处,我们将帮助您解决问题。
【参考方案1】:
如果您的标准是每个国家/地区出现的次数,您可以使用国家/地区名称隔离一个列表并使用集合计数器,如下所示:
from collections import Counter
with open('countries.csv', 'r') as file:
countries_list = [line.split(',')[-1] for line in file.read().split('\n')[1:-1]]
countries = Counter(countries_list)
print(countries)
line.split(',')[-1] - 获取国家名称
file.read().split('\n')[1:-1] - 分隔文件的行并排除第一个(标题)和最后一个(最后一个'\n'之后的空白行)
【讨论】:
几乎没有 CSV 格式可以用.split(',')
可靠地解析,这要归功于引用、嵌入换行符等。有一个模块可以解决这个问题,请不要重新发明***。以上是关于从python中的列表中获取前25个项目的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 从 Github API 中的所有页面获取数据?