python-3.x - 初学者——调用函数时如何对列表进行排序?
问题描述
在下面的代码中,我试图在调用函数时按字母顺序对水果列表进行排序,并且只获取列表中的前 2 个。我知道最后一行是问题,但不知道如何解决它。谢谢!
def listed(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry", "apricot"]
listed(fruits[0:2].sort())
解决方案
您需要先排序,然后切片。该.sort()
方法不返回 sorted list
,它在原地运行并返回None
,因此它对于单行器没有用,但您可以使用内置的(sorted
它返回输入迭代的浅表副本作为list
排序顺序)去做:
listed(sorted(fruits)[:2])
对于较大的输入(具有类似较小的输出),您可能希望避免存储整个结果只是为了切掉两个元素;heapq.nsmallest
将允许这样做:
import heapq # At top of file
...
listed(heapq.nsmallest(2, fruits))
推荐阅读
- java - 如何下载 REST API 响应文件?
- typescript - 未使用的属性 OnPrepare
- php - Laravel Eloquent 过滤记录与查询
- android - android - Dagger 2 注入多个接口和实现类
- django - ModelMultipleChoiceFilter - 字段 'id' 需要一个数字,但得到了 'Diner'
- react-native - 无法使用 Realm Studio 在 React Native 中打开 Realm 数据库
- javascript - 如何解决 Marquee stumble 问题?
- rest - 数组数据提供者的 REST API 响应
- c - 指向非 const 变量的 const 指针
- django - Django如何使用单独的数据库进行默认身份验证