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

如何使用Python按姓名字母顺序排序列表内的元组

按姓名字母顺序排序元组列表

Python 的 sort() 或 sorted() 函数支持通过 key 参数指定排序依据,你可以用它来指定按元组中的姓名元素(索引为1的位置)排序,替代默认的按第一个元素排序的行为。

方法1:原地修改排序(list.sort())

直接在原列表上完成排序,不会生成新列表:

data = [(1, 'Robert Downey', 40, '+919876543210', 15000), (2, 'Chris Evans', 35, '+919876543201', 30000), (3, 'Paul Rudd', 45, '+919876543021', 25000), (4, 'Tom Hardy', 39, '+919876540321', 40000), (5, 'Christian Bale', 30, '+919876504321', 10000), (6, 'Thomas shelby', 50, '+91234567890', 90000), (7, 'Tony Stark', 45, '+91087654296', 100000)]

# 指定排序依据为元组的第二个元素(姓名)
data.sort(key=lambda x: x[1])

# 输出排序结果
for item in data:
    print(item)

方法2:生成新的排序后列表(sorted())

如果不想修改原列表,用 sorted() 会返回一个独立的排序好的列表:

data = [(1, 'Robert Downey', 40, '+919876543210', 15000), (2, 'Chris Evans', 35, '+919876543201', 30000), (3, 'Paul Rudd', 45, '+919876543021', 25000), (4, 'Tom Hardy', 39, '+919876540321', 40000), (5, 'Christian Bale', 30, '+919876504321', 10000), (6, 'Thomas shelby', 50, '+91234567890', 90000), (7, 'Tony Stark', 45, '+91087654296', 100000)]

sorted_data = sorted(data, key=lambda x: x[1])

# 输出排序结果
for item in sorted_data:
    print(item)

进阶:忽略大小写排序

如果需要避免大小写对排序结果的影响(比如让 Thomas shelby 和 Tony Stark 按实际字母顺序排序),可以将姓名转为小写后作为排序依据:

# 原地排序
data.sort(key=lambda x: x[1].lower())

# 或生成新列表
sorted_data = sorted(data, key=lambda x: x[1].lower())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:30:25