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

Python列表排序问题求助:女性组字母排序异常

问题原因及解决办法

你的代码有两个关键问题导致排序不符合预期:

  1. 未使用排序后的结果:你把排序后的列表赋值给了list变量,但后续遍历的还是原始的lst,等于排序操作完全没生效。
  2. 排序未忽略大小写:直接用原名字字符串排序时,大小写会干扰字典序比较(比如'Sara'的首字母SASCII码大于'miNa'的m),导致女性组内排序错误。

修正后的代码

n = int(input())
lst = []
for i in range(n):
    x = input().split('.')
    lst.append(x)
# 排序规则:先按性别分组,再按名字小写形式忽略大小写排序
sorted_lst = sorted(lst, key=lambda x: (x[0], x[1].lower()))

for item in sorted_lst:
    print(item[0], item[1].capitalize(), item[2])

关键修改说明

  • 把排序结果存入sorted_lst(避免覆盖Python内置的list类型),后续遍历这个已排序的列表。
  • 排序的key改为(x[0], x[1].lower()):先按性别区分先后(f在前,m在后),再按名字的小写形式做字典序排序,确保大小写不影响排序逻辑。
  • 输出时用capitalize()将名字转为首字母大写格式,匹配预期输出要求。

测试你的输入后,会得到预期结果:

f Mina C
f Sara java
m Ahmad C++
m Hossein python

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:48:17