我有一个 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 个最高值。但我不知道如何使用字典限制列表只接收 10 个最高值。
我不会使用 Pandas
最佳答案
您可以在排序后对列表进行切片以获得最高的 10 个值:
highest = sorted(reader, key=lambda x: x['value'])[-10:]
您还可以使用 heapq.nlargest
方法在 O(n log t) 中实现相同的效果
(其中 t
是要返回的项目数)时间复杂度而不是 O(n log n):
import heapq
highest = heapq.nlargest(10, reader, key=lambda x: x['value'])
关于python - 如何在没有 Pandas 的情况下使用 Python 从 CSV 文件中获取 10 个最高值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55093443/