我想从整数列表lst创建一个包含前20个值的列表maxValues.
maxValues = []
for i in range(20):
maxValues.append(max(lst))
lst.remove(max(lst))
Run Code Online (Sandbox Code Playgroud)
是否有更紧凑的代码来实现此任务甚至内置功能?
Rik*_*ggi 12
maxvalues = heapq.nlargest(20, lst)
Run Code Online (Sandbox Code Playgroud)
来自doc:
heapq.nlargest(n, iterable, key=None)返回包含定义的数据集中n个最大元素的列表
iterable.key,如果提供,则指定一个参数的函数,该函数用于从iterable中的每个元素中提取比较键:key=str.lower相当于:sorted(iterable, key=key, reverse=True)[:n]
或者以相同的方式使用,heapq.nsmallest()如果你想要最小的.
来自doc的重要说明:
后两个函数[
nlargest和nsmallest]对较小的值表现最佳n.对于较大的值,使用该sorted()函数更有效.此外,何时n==1使用内置min()和max()功能更有效.
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |