为何空格字符在排序时未按ASCII顺序处理?
关于空格字符排序与反转的疑问解答
首先要明确两个核心点:
排序结果完全符合ASCII顺序:空格的ASCII码是32,而'A'的ASCII码是65,32小于65,所以对列表
['A', 'B', 'C', ' ']执行sort()时,空格会排在所有大写字母前面,得到[' ', 'A', 'B', 'C'],这完全符合ASCII值从小到大的排序规则,不存在“区别对待”的情况。反转操作和ASCII顺序无关:
reverse()方法仅会直接倒转列表的元素位置,不会依据字符的ASCII值做排序处理。你的原列表是['A', 'B', 'C', ' '],最后一位是空格,执行反转后自然会将最后一位移到首位,得到[' ', 'C', 'B', 'A'],这个结果和ASCII顺序没有关联,只是单纯的位置倒转。
另外注意代码里的小问题:print(lst.sort())会输出None,因为sort()是原地排序方法,不会返回排序后的列表,正确写法是先执行lst.sort(),再单独调用print(lst)。
内容的提问来源于stack exchange,提问作者Clay Bogusky
相关产品推荐
相关产品推荐

