You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python列表推导式一行命令生成过滤并排序的新列表?

解决方法

首先,你写的列表推导式有问题,正确的筛选逻辑需要加上判断条件。然后排序可以结合排序工具来实现,下面是两种可行的方案:

方案一:筛选+排序一步完成

用sorted()函数包裹列表推导式,在筛选出5的倍数的同时直接完成排序:

a = [5,11,10,65,100,1,15,19,20,25,32,35,41]
b = sorted([i for i in a if i % 5 == 0])

执行后b的结果为[5, 10, 15, 20, 25, 35, 65, 100]。

方案二:先筛选再排序(分步操作)

先用列表推导式筛选出所有5的倍数,再对筛选后的列表调用sort()方法完成排序:

a = [5,11,10,65,100,1,15,19,20,25,32,35,41]
b = [i for i in a if i % 5 == 0]
b.sort()

最终b同样会得到排序后的5的倍数列表。

核心逻辑就是:列表推导式负责筛选符合条件的元素,排序则借助sorted()函数或列表自带的sort()方法实现,两者结合就能满足你的需求。

内容的提问来源于stack exchange,提问作者AtifRiaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:40:17