Câu trả lời:
Các bộ dữ liệu được so sánh vị trí theo vị trí: mục đầu tiên của bộ thứ nhất được so sánh với mục đầu tiên của bộ thứ hai; nếu chúng không bằng nhau (tức là cái đầu tiên lớn hơn hoặc nhỏ hơn cái thứ hai) thì đó là kết quả của sự so sánh, nếu không thì mục thứ hai được xem xét, sau đó là mục thứ ba, v.v.
Xem các hoạt động trình tự phổ biến :
Trình tự cùng loại cũng hỗ trợ so sánh. Cụ thể, các bộ dữ liệu và danh sách được so sánh theo từ vựng bằng cách so sánh các yếu tố tương ứng. Điều này có nghĩa là để so sánh bằng nhau, mọi phần tử phải so sánh bằng nhau và hai chuỗi phải cùng loại và có cùng độ dài.
Ngoài ra giá trị so sánh để biết thêm chi tiết:
So sánh thuật ngữ giữa các bộ sưu tập tích hợp hoạt động như sau:
- Để hai bộ sưu tập so sánh bằng nhau, chúng phải cùng loại, có cùng độ dài và mỗi cặp phần tử tương ứng phải so sánh bằng nhau (ví dụ:
[1,2] == (1,2)
là sai vì loại không giống nhau).- Các bộ sưu tập hỗ trợ so sánh thứ tự được sắp xếp giống như các phần tử không bằng nhau đầu tiên của chúng (ví dụ:
[1,2,x] <= [1,2,y]
có cùng giá trị nhưx <= y
). Nếu một phần tử tương ứng không tồn tại, bộ sưu tập ngắn hơn được đặt hàng trước (ví dụ,[1,2] < [1,2,3]
là đúng).
Nếu không bằng nhau, các chuỗi được sắp xếp giống như các yếu tố khác nhau đầu tiên của chúng. Ví dụ: cmp ([1,2, x], [1,2, y]) trả về giống như cmp (x, y). Nếu phần tử tương ứng không tồn tại, chuỗi ngắn hơn được coi là nhỏ hơn (ví dụ: [1,2] <[1,2,3] trả về True).
Lưu ý 1 : <
và >
không có nghĩa là "nhỏ hơn" và "lớn hơn" nhưng "là trước" và "là sau": vì vậy (0, 1) "là trước" (1, 0).
Lưu ý 2 : các bộ dữ liệu không được coi là vectơ trong không gian n chiều , so với chiều dài của chúng.
Lưu ý 3 : đề cập đến câu hỏi /programming/36911617/python-2-tuple-comparison : đừng nghĩ rằng một tuple là "lớn hơn" chỉ khi bất kỳ yếu tố nào của đầu tiên lớn hơn tương ứng một trong hai
x = tuple([0 for _ in range(n)])
và làm tương tự cho y. Đặt n = 100, 1000, 10.000 và 100.000 và chạy %timeit x==y
cho các giá trị thời gian lần lượt là 0,5, 4,6, 43,9 và 443 micro giây, gần bằng với O (n) như bạn thực tế có thể nhận được.
<
và >
không có nghĩa là "nhỏ hơn" và "lớn hơn sau đó" nhưng "đến trước" và "đến sau": vì vậy (0, 1)
"đến trước"(1, 0)
Các tài liệu Python không giải thích nó.
Các bộ và danh sách được so sánh theo từ vựng bằng cách sử dụng so sánh các yếu tố tương ứng. Điều này có nghĩa là để so sánh bằng nhau, mỗi phần tử phải so sánh bằng nhau và hai chuỗi phải cùng loại và có cùng độ dài.
Các python 2.5 tài liệu giải thích nó tốt.
Các bộ và danh sách được so sánh theo từ vựng bằng cách sử dụng so sánh các yếu tố tương ứng. Điều này có nghĩa là để so sánh bằng nhau, mỗi phần tử phải so sánh bằng nhau và hai chuỗi phải cùng loại và có cùng độ dài.
Nếu không bằng nhau, các chuỗi được sắp xếp giống như các yếu tố khác nhau đầu tiên của chúng. Ví dụ: cmp ([1,2, x], [1,2, y]) trả về giống như cmp (x, y). Nếu phần tử tương ứng không tồn tại, chuỗi ngắn hơn được sắp xếp trước (ví dụ: [1,2] <[1,2,3]).
Thật không may, trang đó dường như đã biến mất trong tài liệu cho các phiên bản gần đây hơn.
a = ('A','B','C') # see it as the string "ABC"
b = ('A','B','D')
A được chuyển đổi thành ASCII tương ứng của nó ord('A') #65
cho các phần tử khác
Vì vậy,
>> a>b # True
bạn có thể nghĩ về nó như là so sánh giữa các chuỗi (Chính xác là như vậy)
điều tương tự cũng xảy ra với số nguyên.
x = (1,2,2) # see it the string "123"
y = (1,2,3)
x > y # False
bởi vì (1 không lớn hơn 1, di chuyển sang tiếp theo, 2 không lớn hơn 2, di chuyển sang 2 tiếp theo nhỏ hơn ba chiều theo phương pháp -)
Điểm chính được đề cập trong câu trả lời ở trên
nghĩ về nó như là một phần tử nằm trước một phần tử khác theo thứ tự abc không lớn hơn một phần tử và trong trường hợp này coi tất cả các phần tử tuple là một chuỗi.
(1,2,3) > (1,2,2)
choTrue
<
và>
. Ví dụ,(0, 1) < (1, 0)
đánh giá đểTrue
.