Làm cách nào để so sánh chuỗi trong python?

Cũng như các số, toán tử

print('abc' == 'ABC')
# False
9 xác định xem hai chuỗi có bằng nhau không. Nếu chúng bằng nhau, thì trả về
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
6;

print('abc' == 'abc')
# True

print('abc' == 'xyz')
# False

nguồn.

Nó phân biệt chữ hoa chữ thường và áp dụng tương tự cho các phép so sánh bằng các toán tử và phương thức khác. So sánh không phân biệt chữ hoa chữ thường được mô tả sau

print('abc' == 'ABC')
# False

nguồn.

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
0 trả về
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
6 nếu chúng không bằng nhau và
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
7 nếu chúng bằng nhau

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False

nguồn.

Trận đấu một phần. print('abc' != 'xyz') # True print('abc' != 'abc') # False 1, print('abc' != 'xyz') # True print('abc' != 'abc') # False 2

Sử dụng toán tử

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
1 để khớp một phần, i. e. , liệu một chuỗi có chứa chuỗi kia hay không

print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
24 trả về
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
6 nếu
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
26 được chứa trong
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
27 (
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
26 là chuỗi con của
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
27) và
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
7 nếu không. Nếu mỗi ký tự của ________ 126 được chứa trong _______ 127 một cách kín đáo, thì ________ 17 được trả về

print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False

nguồn.

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
2 trả về
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
6 nếu không có,
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
7 nếu có

print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
2

nguồn.

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
1 và
print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
2 cũng được dùng để kiểm tra sự tồn tại của các phần tử trong danh sách. Xem chi tiết bài viết sau

  • toán tử in trong Python (đối với danh sách, chuỗi, từ điển, v.v. )

Trận đấu tiến/lùi. print('abc' != 'xyz') # True print('abc' != 'abc') # False 3, print('abc' != 'xyz') # True print('abc' != 'abc') # False 4

Sử dụng phương thức chuỗi

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
3 để khớp tiến, i. e. , liệu chuỗi có bắt đầu bằng chuỗi đã chỉ định hay không

print('abc' == 'abc')
# True

print('abc' == 'xyz')
# False
2

nguồn.

Bạn cũng có thể chỉ định một bộ chuỗi

print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
6 được trả về nếu chuỗi bắt đầu bằng một trong các phần tử của bộ và
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
7 được trả về nếu chuỗi không bắt đầu bằng bất kỳ phần tử nào trong số đó. Lưu ý rằng sẽ xảy ra lỗi nếu bạn chỉ định danh sách thay vì bộ

print('abc' == 'abc')
# True

print('abc' == 'xyz')
# False
5

nguồn.

Sử dụng phương thức chuỗi

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
4 để so khớp ngược, i. e. , liệu một chuỗi có kết thúc bằng chuỗi đã chỉ định hay không. Cách sử dụng của nó giống như
print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
3

print('abc' == 'abc')
# True

print('abc' == 'xyz')
# False
8

nguồn.

Liên kết được tài trợ

so sánh đơn hàng. ________ 55, ________ 56, ________ 57, ________ 58

Bạn có thể so sánh các chuỗi với các toán tử ________ 55, ________ 56, ________ 57 và ________ 58 cũng như các số. Chuỗi được so sánh theo thứ tự từ vựng

print('abc' == 'ABC')
# False
7

nguồn.

Thứ tự của các ký tự được so sánh trong các điểm mã Unicode

  • Unicode/Tham khảo ký tự - Wikibooks, sách mở cho một thế giới mở

Bạn có thể lấy điểm mã Unicode của một ký tự bằng chức năng tích hợp sẵn

print('abc' == 'abc')
# True

print('abc' == 'xyz')
# False
84

  • Chuyển đổi điểm mã Unicode và ký tự cho nhau (chr, ord)

print('abc' == 'ABC')
# False
9

nguồn.

Chữ hoa có điểm mã nhỏ hơn chữ thường

print('abc' == 'ABC')
# False
0

nguồn.

Khi một danh sách các chuỗi được sắp xếp bằng phương thức danh sách

print('abc' == 'abc')
# True

print('abc' == 'xyz')
# False
85 hoặc hàm tích hợp sẵn
print('abc' == 'abc')
# True

print('abc' == 'xyz')
# False
86, thứ tự cũng được xác định dựa trên các điểm mã Unicode

  • Sắp xếp danh sách, chuỗi, bộ trong Python (sắp xếp, sắp xếp)

print('abc' == 'ABC')
# False
1

nguồn.

So sánh không phân biệt chữ hoa chữ thường. print('abc' != 'xyz') # True print('abc' != 'abc') # False 9, print('bbb' in 'aaa-bbb-ccc') # True print('xxx' in 'aaa-bbb-ccc') # False print('abc' in 'aaa-bbb-ccc') # False 0

Tất cả các toán tử và phương thức được mô tả cho đến nay đều phân biệt chữ hoa chữ thường

Nếu bạn cần so sánh không phân biệt chữ hoa chữ thường, bạn có thể sử dụng

print('abc' != 'xyz')
# True

print('abc' != 'abc')
# False
9 hoặc
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
0 để chuyển đổi cả hai chuỗi thành chữ hoa hoặc chữ thường

print('abc' == 'ABC')
# False
2

nguồn.

biểu thức chính quy. print('bbb' in 'aaa-bbb-ccc') # True print('xxx' in 'aaa-bbb-ccc') # False print('abc' in 'aaa-bbb-ccc') # False 1, print('bbb' in 'aaa-bbb-ccc') # True print('xxx' in 'aaa-bbb-ccc') # False print('abc' in 'aaa-bbb-ccc') # False 2

Bạn có thể sử dụng các biểu thức chính quy để so sánh linh hoạt hơn

  • lại — Các phép toán biểu thức chính quy — Python 3. 9. 7 tài liệu

Sử dụng

print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
1 để khớp một phần, tiến và lùi. Lưu ý rằng
print('abc' == 'ABC')
# False
75 cũng có thể được sử dụng để khớp về phía trước, nhưng vấn đề này không được thảo luận ở đây

Có thể sử dụng nhiều siêu ký tự (ký tự đặc biệt) cho các mẫu biểu thức chính quy, nhưng cũng có thể chỉ cần chỉ định một chuỗi vì nó là. Một đối tượng khớp được trả về nếu bao gồm chuỗi và

print('abc' == 'ABC')
# False
76 nếu không. Các đối tượng khớp luôn được đánh giá là
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
6

print('abc' == 'ABC')
# False
3

nguồn.

Siêu ký tự

print('abc' == 'ABC')
# False
78 khớp với phần đầu của chuỗi và
print('abc' == 'ABC')
# False
79 khớp với phần cuối của chuỗi

print('abc' == 'ABC')
# False
4

nguồn.

Ngoài ra, có sẵn nhiều siêu ký tự và trình tự đặc biệt khác

Ví dụ:

print('abc' == 'ABC')
# False
90 đại diện cho bất kỳ một chữ cái nào trong bảng chữ cái viết hoa và
print('abc' == 'ABC')
# False
91 có nghĩa là mẫu trước đó được lặp lại một hoặc nhiều lần. Do đó,
print('abc' == 'ABC')
# False
92 khớp với bất kỳ chuỗi con nào bao gồm một hoặc nhiều ký tự chữ cái viết hoa liên tiếp

print('abc' == 'ABC')
# False
5

nguồn.

Vui lòng xem bài viết sau để biết các ví dụ cơ bản về các mẫu biểu thức chính quy, chẳng hạn như mẫu giống ký tự đại diện

  • Trích xuất một chuỗi con từ một chuỗi trong Python (vị trí, biểu thức chính quy)

Sử dụng

print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
2 để kiểm tra xem toàn bộ chuỗi có khớp với mẫu biểu thức chính quy hay không. Ngay cả khi một số bộ phận khớp,
print('abc' == 'ABC')
# False
76 được trả lại nếu một số bộ phận không khớp

print('abc' == 'ABC')
# False
6

nguồn.

print('abc' == 'ABC')
# False
96 đại diện cho một số và
print('abc' == 'ABC')
# False
97 đại diện cho
print('abc' == 'ABC')
# False
98 lần lặp lại. Vì dấu gạch chéo ngược
print('abc' == 'ABC')
# False
99 được sử dụng trong các chuỗi biểu thức chính quy đặc biệt, chẳng hạn như
print('abc' == 'ABC')
# False
96, nên sẽ rất hữu ích khi sử dụng các chuỗi thô (
print('abc' == 'ABC')
# False
01 hoặc
print('abc' == 'ABC')
# False
02) coi dấu gạch chéo ngược
print('abc' == 'ABC')
# False
99 là ký tự chữ

  • Chuỗi thô trong Python

print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
2 đã được thêm vào Python 3. 4. Trong các phiên bản cũ hơn, bạn có thể sử dụng
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
1 với
print('abc' == 'ABC')
# False
78 và
print('abc' == 'ABC')
# False
79 để làm điều tương tự. Bạn cũng có thể sử dụng
print('abc' == 'ABC')
# False
75 và
print('abc' == 'ABC')
# False
79, mặc dù nó không được hiển thị ở đây

print('abc' == 'ABC')
# False
7

nguồn.

Bằng cách chỉ định

print('abc' == 'ABC')
# False
10 làm đối số
print('abc' == 'ABC')
# False
12 của các hàm như
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
1 và
print('bbb' in 'aaa-bbb-ccc')
# True

print('xxx' in 'aaa-bbb-ccc')
# False

print('abc' in 'aaa-bbb-ccc')
# False
2, có thể so sánh không phân biệt chữ hoa chữ thường

Bạn có thể == chuỗi trong Python không?

Có thể kiểm tra sự bằng nhau của chuỗi Python bằng toán tử == hoặc hàm __eq__() . Các chuỗi Python phân biệt chữ hoa chữ thường, vì vậy các phương thức kiểm tra đẳng thức này cũng phân biệt chữ hoa chữ thường.

Chúng ta có thể sử dụng == cho chuỗi không?

Bạn không nên sử dụng == (toán tử đẳng thức) để so sánh các chuỗi này vì chúng so sánh tham chiếu của chuỗi, i. e. liệu chúng có phải là cùng một đối tượng hay không. Mặt khác, phương thức equals() so sánh xem giá trị của các chuỗi có bằng nhau hay không và không phải chính đối tượng.