【问题标题】:Searching for the top 5 largest numbers in an array [duplicate]搜索数组中的前 5 个最大数字 [重复]
【发布时间】:2019-07-09 08:48:17
【问题描述】:

编写一个骰子游戏。 我有一个 csv 文件。 (score.csv)

我已将此文件放入数组中。

import csv

with open('score.csv', newline='') as csvfile:
    data = list(csv.reader(csvfile))
print(data)

我想知道如何从中读取前 5 个最大的数字并按顺序打印出来。

【问题讨论】:

  • 排序、切片、循环和打印

标签: python


【解决方案1】:

举个例子:

data = [1241,19246,273,1204,12948,652,385,21984]

要按顺序获得前 5 名,我们只需这样做:

print(sorted(data)[-5:])

【讨论】:

    【解决方案2】:

    另一种可能是使用heapq 包。

    据我所知,它的性能通常比sorted 更好。

    from heapq import nlargest
    
    data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    print(nlargest(5, data)) 
    

    输出是:

    [10, 9, 8, 7, 6]
    

    这一切都取决于你想对数据做什么,但我发现这种方法比使用sorted 更干净。

    【讨论】:

      【解决方案3】:

      排序,选择前五名,按顺序打印

      data.sort(reverse = True)
      top = data[:5]
      for score in top:
         print(score)
      

      【讨论】:

      • list.sort 是就地操作。 sorted 将被分配 None,更不用说遮蔽内置函数sorted
      • 谢谢,你让我通过了我的 GCSE。 #ez
      猜你喜欢
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 1970-01-01
      • 2017-07-02
      • 2019-09-03
      相关资源
      最近更新 更多