Làm thế nào để bạn viết so sánh trong python?

Trong Python, chuỗi là chuỗi ký tự, được lưu trữ hiệu quả trong bộ nhớ dưới dạng đối tượng. Mỗi đối tượng có thể được xác định bằng phương pháp

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
5, như bạn có thể thấy bên dưới. Python cố gắng sử dụng lại các đối tượng trong bộ nhớ có cùng giá trị, điều này cũng giúp so sánh các đối tượng rất nhanh trong Python

$ python
Python 3.9.0 (v3.9.0:9cf6752276, Oct  5 2020, 11:29:23) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = "abc"
>>> b = "abc"
>>> c = "def"
>>> print (id(a), id(b), id(c))
(139949123041320, 139949123041320, 139949122390576)
>>> quit()

Để so sánh các chuỗi, Python cung cấp một số toán tử khác nhau để thực hiện việc này. Đầu tiên, chúng tôi sẽ giải thích chúng chi tiết hơn dưới đây. Thứ hai, chúng ta sẽ xem xét cả hai mô-đun

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
6 và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
0, chứa các phương thức để xử lý các kết quả khớp không phân biệt chữ hoa chữ thường và không chính xác. Thứ ba, để xử lý các chuỗi nhiều dòng, mô-đun difflib khá tiện dụng. Một số ví dụ sẽ giúp bạn hiểu cách sử dụng chúng

So sánh Chuỗi với == và. = Toán tử

Là một toán tử so sánh cơ bản, bạn sẽ muốn sử dụng

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
1 và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
2. Chúng hoạt động theo cách chính xác giống như với các giá trị số nguyên và số float. Toán tử
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
1 trả về
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
4 nếu khớp chính xác, ngược lại sẽ trả về
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
5. Ngược lại, toán tử
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
2 trả về
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
4 nếu không khớp và ngược lại trả về
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
5. Liệt kê 1 chứng minh điều này

Trong vòng lặp

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
9, một chuỗi chứa tên thành phố Thụy Sĩ "Lausanne" được so sánh với một mục từ danh sách các địa điểm khác và kết quả so sánh được in trên thiết bị xuất chuẩn

Liệt kê 1

Chạy tập lệnh Python từ phía trên, đầu ra như sau

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True

Toán tử $ python3 comparing-strings.py comparing Berlin with Lausanne: False comparing Paris with Lausanne: False comparing Lausanne with Lausanne: True 1 và $ python3 comparing-strings.py comparing Berlin with Lausanne: False comparing Paris with Lausanne: False comparing Lausanne with Lausanne: True 31

Python có hai toán tử so sánh là

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
1 và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
31. Thoạt nhìn chúng có vẻ giống nhau, nhưng thực ra không phải vậy

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
1 so sánh hai biến dựa trên giá trị mà chúng đại diện. Ngược lại, toán tử
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
31 so sánh hai biến dựa trên ID đối tượng trong bộ nhớ

John (Doe) và John (Moe) đều được gọi là John. Nếu chúng ta có thể rút gọn họ chỉ bằng tên của họ, họ sẽ có giá trị ngang nhau, nhưng vẫn là hai người khác nhau về chất

Ví dụ tiếp theo chứng minh rằng đối với ba biến có giá trị chuỗi. Hai biến

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
36 và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
37 có cùng giá trị và Python đề cập đến cùng một đối tượng để giảm thiểu việc sử dụng bộ nhớ

Điều này được thực hiện cho các loại và chuỗi đơn giản theo mặc định, nhưng không phải cho các đối tượng khác

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
3

Ngay khi giá trị thay đổi, Python sẽ khởi tạo lại đối tượng và gán biến. Trong đoạn mã tiếp theo,

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
37 nhận giá trị là 2 và sau đó,
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
37 và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
30 đề cập đến cùng một đối tượng

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
3

Các toán tử so sánh khác

Để so sánh về thứ tự từ điển, bạn có thể sử dụng các toán tử so sánh

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
31,
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
32,
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
33 và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
34. Bản thân việc so sánh được thực hiện theo từng ký tự. Thứ tự phụ thuộc vào thứ tự của các ký tự trong bảng chữ cái. Thứ tự này phụ thuộc vào bảng ký tự được sử dụng trên máy của bạn khi thực thi mã Python

Hãy ghi nhớ thứ tự phân biệt chữ hoa chữ thường. Như một ví dụ cho bảng chữ cái Latinh, "Bus" đứng trước "bus". Liệt kê 2 cho thấy cách các toán tử so sánh này hoạt động trong thực tế

Liệt kê 2

Chạy tập lệnh Python từ phía trên, đầu ra như sau

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
9

So sánh chuỗi không phân biệt chữ hoa chữ thường

Các ví dụ trước tập trung vào kết hợp chính xác giữa các chuỗi. Để cho phép so sánh không phân biệt chữ hoa chữ thường, Python cung cấp các phương thức chuỗi đặc biệt như

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
35 và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
36. Cả hai đều có sẵn trực tiếp dưới dạng phương thức của đối tượng chuỗi theo

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
35 lần lượt chuyển đổi toàn bộ chuỗi thành chữ hoa và
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
36 thành chữ thường. Dựa trên Liệt kê 1, danh sách tiếp theo cho biết cách sử dụng phương pháp
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
36

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

Liệt kê 3

Đầu ra như sau

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
5

So sánh chuỗi sử dụng biểu thức chính quy (RegEx)

Biểu thức chính quy - hay viết tắt là "regex" - xác định một mẫu ký tự cụ thể

Làm thế nào để bạn viết so sánh trong python?

Để sử dụng cơ chế này trong Python, trước tiên hãy nhập mô-đun

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
0 và xác định một mẫu cụ thể, tiếp theo. Một lần nữa, ví dụ sau dựa trên Liệt kê 1. Mẫu tìm kiếm khớp với "bay" và bắt đầu bằng chữ thường hoặc chữ hoa. Chính xác, mã Python sau tìm thấy tất cả các chuỗi trong đó mẫu tìm kiếm xảy ra bất kể ở vị trí nào của chuỗi - ở đầu, ở giữa hoặc ở cuối

Liệt kê 4

Đầu ra như sau và khớp với "Bayswater", "Table Bay" và "Bombay" từ danh sách các địa điểm

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
7

So sánh nhiều dòng và danh sách

Cho đến nay những so sánh của chúng ta chỉ dừng lại ở một vài từ. Sử dụng mô-đun

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
91 Python cũng cung cấp một cách để so sánh các chuỗi nhiều dòng và toàn bộ danh sách từ. Đầu ra có thể được cấu hình theo các định dạng khác nhau của các công cụ tìm khác biệt

Ví dụ tiếp theo (Liệt kê 5) so sánh hai chuỗi nhiều dòng theo từng dòng và hiển thị các phần xóa cũng như phần bổ sung. Sau khi khởi tạo đối tượng

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
92 ở dòng 12, việc so sánh được thực hiện bằng cách sử dụng phương thức
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
93 ở dòng 15. Kết quả được in trên đầu ra tiêu chuẩn

Chạy tập lệnh tạo đầu ra như bên dưới. Các dòng bị xóa được biểu thị bằng ký hiệu

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
94 trong khi các dòng có thêm bắt đầu bằng ký hiệu
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
95. Hơn nữa, các dòng có thay đổi bắt đầu bằng dấu chấm hỏi. Các thay đổi được biểu thị bằng dấu hiệu
$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
96 tại vị trí tương ứng. Các dòng không có chỉ báo vẫn giống nhau

$ python3 comparing-strings.py
comparing Berlin with Lausanne: False
comparing Paris with Lausanne: False
comparing Lausanne with Lausanne: True
4

Phần kết luận

Trong bài viết này, bạn đã học được nhiều cách khác nhau để so sánh các chuỗi trong Python. Chúng tôi hy vọng rằng phần tổng quan này sẽ giúp bạn lập trình hiệu quả trong cuộc sống lập trình viên của mình

== so sánh trong Python là gì?

Toán tử == so sánh giá trị hoặc đẳng thức của hai đối tượng , trong khi toán tử is của Python kiểm tra xem hai biến có trỏ đến cùng một đối tượng hay không . Trong phần lớn các trường hợp, điều này có nghĩa là bạn nên sử dụng các toán tử đẳng thức == và. = , trừ khi bạn đang so sánh với Không.

Python có thể so sánh các chuỗi với == không?

So sánh Chuỗi Python có thể được thực hiện bằng cách sử dụng đẳng thức (==) và phép so sánh (

== Là một toán tử so sánh trong Python?

Toán tử “==” so sánh bằng cách kiểm tra sự bằng nhau . nếu chúng ta so sánh hai đối tượng người ở trên bằng cách sử dụng toán tử ==, chúng ta sẽ nhận được câu trả lời là “cả hai người đều bình đẳng”, vì chúng mang cùng một giá trị tên. Tuy nhiên, toán tử “is” so sánh các danh tính.

== là gì và trong Python là gì?

Toán tử == giúp chúng ta so sánh sự bằng nhau của các đối tượng. Toán tử is giúp chúng ta kiểm tra xem các biến khác nhau có hướng tới một đối tượng tương tự trong bộ nhớ hay không . Chúng tôi sử dụng toán tử == trong Python khi giá trị của cả hai toán hạng rất bằng nhau. Vì vậy, điều kiện sẽ trở thành đúng ở đây.