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

Python对嵌套列表排序时出现条目重复问题的原因是什么?

问题原因

你编写的列表推导式使用了两层嵌套for循环,会生成两个列表的笛卡尔积:每个名字都会和score列表中的所有分数逐一匹配,5个名字×5个分数最终生成25条冗余重复的条目,不符合「名字与对应位置的分数配对」的预期。

修正方案

使用zip()函数将两个列表同位置的名字和分数一一配对,再对生成的嵌套列表按第二项(分数)排序即可,修正代码如下:

name = ['Harry', 'Berry', 'Tina', 'Akriti', 'Harsh']
score = [37.21, 37.21, 37.2, 41.0, 39.0]

# 同位置元素配对生成初始嵌套列表
mylist = [[title, grade] for title, grade in zip(name, score)]
# 按嵌套列表的第二项(分数)排序
test = sorted(mylist, key=lambda x:x[1])

执行后test的输出结果为:

[['Tina', 37.2], ['Harry', 37.21], ['Berry', 37.21], ['Harsh', 39.0], ['Akriti', 41.0]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:24:03