如何使用Python而不使用Pandas从CSV文件中获取10个最高值

2024-04-23 16:40:30 发布

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

我有一个CSV文件,我使用CSV库中的DictReader将这个文件转换成字典。在

我的代码是这样的:

with open('file.csv', 'r') as file:
        reader = csv.DictReader(file)
        highest = sorted(reader, key=lambda x: (x['value']))
        print(highest)

但是这不起作用,列表highest包含来自CSV的所有数据,我只想要10个最高值。但是我不知道如何使用limit-the-list来使用dictionary只接收最高的10个值。在

我不能用熊猫


Tags: 文件csvlambdakey代码字典aswith
1条回答
网友
1楼 · 发布于 2024-04-23 16:40:30

排序后可以对列表进行切片,以获得10个最高值:

highest = sorted(reader, key=lambda x: x['value'])[-10:]

您还可以使用heapq.nlargest方法在O(n logt)中实现相同的效果 (其中t是要返回的项目数)时间复杂性而不是O(n logn)

^{pr2}$

相关问题 更多 >