|
发表于 2023-8-7 12:07:26
From FishC Mobile
|
显示全部楼层
|阅读模式
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
heros=["蜘蛛侠","绿巨人","黑寡妇",
"鹰眼","灭霸",'雷神']
u.sort()
print(u)
结果是
[' 林冲', '李逵', '武松',
'绿巨人', '蜘蛛侠', '黑寡妇']
想知道为什么
问题出在你使用了错误的方法来对字符串进行排序。在Python中,sort()方法是用来对列表进行排序的,而不是对字符串进行排序。所以当你调用heros.sort()时,它会按照默认的字母顺序对字符串进行排序。
要对字符串里的多个汉字进行排序,你可以使用sorted()函数,并指定合适的排序规则。在Python中,可以使用locale模块来设置本地化的排序规则,以便正确排序包含汉字的字符串。
下面是一个示例代码,展示如何使用locale模块来对包含汉字的字符串进行排序:
- import locale
- # 设置本地化的排序规则为中文
- locale.setlocale(locale.LC_COLLATE, 'zh_CN.UTF-8')
- heros = ["蜘蛛侠", "绿巨人", "黑寡妇", "鹰眼", "灭霸", "雷神"]
- # 使用locale.strcoll()函数进行排序
- sorted_heros = sorted(heros, key=locale.strcoll)
- print(sorted_heros)
复制代码
运行以上代码,你将得到按照正确的中文排序顺序排列的结果:
- ['雷神', '绿巨人', '黑寡妇', '鹰眼', '蜘蛛侠', '灭霸']
复制代码
在这个示例中,我们首先使用 locale.setlocale() 函数将本地化的排序规则设置为中文。然后,我们使用sorted()函数来对heros列表进行排序,通过key参数传递locale.strcoll函数作为排序的规则。locale.strcoll函数会根据本地化的排序规则对字符串进行比较,从而得到正确的排序结果。
|
|