字符串类型域名列表调用sort()按字母排序失效问题咨询
排序失效原因
你的sort函数实际已经生效,只是排序结果不符合预期,和域名包含的英文句号没有任何关系:
Python默认的字符串排序按ASCII码值大小比较:大写字母的ASCII码值(65-90)远小于小写字母的ASCII码值(97-122),因此所有大写字母开头的域名都会统一排在小写字母开头的域名前面,就会出现你认为「排序没生效」的错觉。
你当前的排序结果规则是:先按首字母大小写区分,大写开头的域名字母序在前,小写开头的在后,同类内部按正常字母序排序,完全符合默认sort函数的执行逻辑。
修复方案
如果要实现不区分大小写的自然字母序排序,修改排序的key参数即可:
domain.sort(key=lambda item: item.lower(), reverse=False)
执行后会先把所有域名统一转为小写再比较排序,即可得到你预期的排序结果。
内容的提问来源于stack exchange,提问作者user12407401
相关产品推荐
相关产品推荐

