从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把列表前几个元素提取到新列表

如何使用 Python 从 Github API 中的所有页面获取数据?

从 Python 数据框的一列中的每一行中删除前 x 个字符

SQL查询从列表中获取前“n”个分数

从python中的类列表中随机选择x个项目

python 怎么从集合中随机数