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

Python实现购物列表按价格排序并移除价格的更简洁写法

更简洁的实现方式

当然有更简洁且Pythonic的实现方式,以下是几种方案:

方案1:列表推导式 + lambda 排序键

无需额外导入模块,一行代码完成排序和字段截断:

items = [item[:2] for item in sorted(items, key=lambda x: x[2])]

直接遍历sorted()返回的按价格(第三个元素)升序排列的列表,对每个元素取前两个字段生成新列表,一步到位替代原代码的排序+循环修改操作。

方案2:结合operator.itemgetter的列表推导式

如果偏好使用operator.itemgetter(处理大量数据时性能略优于lambda),可以保留导入但用列表推导简化后续操作:

import operator
items = [item[:2] for item in sorted(items, key=operator.itemgetter(2))]

相比原代码的for i in range(len(items))循环,列表推导式更简洁可读,避免了手动索引操作。

原地修改版本(可选)

如果需要在原列表上直接修改而非创建新列表,可以这样写:

items.sort(key=lambda x: x[2])  # 原地排序
items[:] = [item[:2] for item in items]  # 原地替换为截断后的元素

这些方案都比原实现更紧凑,同时保持了代码的可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:56:08