Từ docs:
Việc so sánh sử dụng hoặc null đặt hàng: đầu tiên hai mục đầu tiên được so sánh, và nếu chúng khác nhau này xác định kết quả của việc so sánh ; nếu chúng bằng nhau, thì hai mục tiếp theo sẽ được so sánh và do đó, bật, cho đến khi một trong hai chuỗi là cạn kiệt.
Ngoài ra:
hoặc null đặt hàng cho các chuỗi sử dụng số điểm mã Unicode để đặt hàng đặc điểm cá nhân.
hoặc trên Python 2:
đặt hàng hoặc null cho các chuỗi sử dụng thứ tự ASCII cho các ký tự riêng biệt.
Như một ví dụ:
>>> 'abc' > 'bac'
False
>>> ord('a'), ord('b')
(97, 98)
Kết quả False
được trả về càng sớm càng a
được tìm thấy là ít hơn b
. Các mục khác không được so sánh (như bạn có thể thấy cho các mục thứ hai: b
>a
là True
).
Hãy nhận biết của thấp hơn và chữ hoa:
>>> [(x, ord(x)) for x in abc]
[('a', 97), ('b', 98), ('c', 99), ('d', 100), ('e', 101), ('f', 102), ('g', 103), ('h', 104), ('i', 105), ('j', 106), ('k', 107), ('l', 108), ('m', 109), ('n', 110), ('o', 111), ('p', 112), ('q', 113), ('r', 114), ('s', 115), ('t', 116), ('u', 117), ('v', 118), ('w', 119), ('x', 120), ('y', 121), ('z', 122)]
>>> [(x, ord(x)) for x in abc.upper()]
[('A', 65), ('B', 66), ('C', 67), ('D', 68), ('E', 69), ('F', 70), ('G', 71), ('H', 72), ('I', 73), ('J', 74), ('K', 75), ('L', 76), ('M', 77), ('N', 78), ('O', 79), ('P', 80), ('Q', 81), ('R', 82), ('S', 83), ('T', 84), ('U', 85), ('V', 86), ('W', 87), ('X', 88), ('Y', 89), ('Z', 90)]
gì? Làm cách nào khác có thể đặt hàng được định nghĩa khác ngoài trái sang phải? –
@ S.Lott: từ phải sang trái. Không phải ai cũng làm như vậy, nhưng đó không phải là khả năng duy nhất. – katrielalex
@katrielalex: Nếu bạn cho phép điều đó, bạn phải cho phép ngẫu nhiên và thậm chí chỉ và lẻ và mọi khả năng khác. Sau đó, bạn phải "tham số hóa" toán tử để chọn thứ tự nào. Nếu có được một mặc định, làm thế nào nó có thể khác hơn từ trái sang phải? –