So sánh chuỗi trắng trong python năm 2024
Trong Python, chuỗi là chuỗi ký tự, được lưu trữ một cách 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 cách sử dụng phương thức id (), như bạn có thể thấy ví dụ bên dưới. Python cố gắng tái sử dụng các đối tượng trong bộ nhớ có cùng giá trị, cũng làm cho việc so sánh các đối tượng rất nhanh trong Python:
Show Để so sánh các chuỗi, Python cung cấp một vài toán tử khác nhau để so sánh. Đầu tiên, chúng ta sẽ giải thích chi tiết hơn bên dưới. Thứ hai, chúng ta sẽ đi qua cả chuỗi và các module re, chứa các phương thức để xử lý các trường hợp không phân biệt dạng chữ và không chính xác. Thứ ba, để xử lý các chuỗi nhiều dòng, module 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. 1. Toán tử == và! =Là toán tử so sánh cơ bản, bạn sẽ muốn sử dụng == và! =. Chúng hoạt động chính xác giống như với các giá trị số nguyên và float. Toán tử == trả về True nếu có kết quả khớp chính xác, nếu không False sẽ được trả về. Ngược lại, toán tử! = Trả về True nếu không có match và ngược lại trả về False. ví dụ dưới chứng minh điều này. Trong vòng lặp for, một chuỗi có chứa tên của thành phố Thụy Sĩ "Lausanne" được so sánh với một mục nhập 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.
2 . Toán tử == và isPython có hai toán tử so sánh == và is. Ngay từ cái nhìn đầu tiên, chúng dường như giống nhau, nhưng thực ra chúng không giống nhau. == so sánh hai biến dựa trên giá trị thực của chúng. Ngược lại, toán tử is so sánh hai biến dựa trên id đối tượng và trả về True nếu hai biến tham chiếu đến cùng một đối tượng. Ví dụ tiếp theo cho thấy rằng đối với ba biến có giá trị số nguyên. Hai biến a và b có cùng giá trị, và Python đề cập đến cùng một đối tượng để giảm thiểu mức sử dụng bộ nhớ.
Ngay khi giá trị thay đổi, Python sẽ khôi phục lại đối tượng và gán biến. Trong đoạn mã tiếp theo b nhận giá trị là 2, và sau đó b và c tham chiếu đến cùng một đối tượng.
Một nguyên tắc để làm theo là sử dụng == khi so sánh các loại bất biến (như ints) và is khi so sánh các đối tượng. 3. Các loại so sánh khácĐể so sánh về thứ tự mảng, bạn có thể sử dụng toán tử so sánh <,>, <= và> =. Việc so sánh chính nó được thực hiện giữa các charactor. 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ự đang được sử dụng trên máy của bạn trong khi thực thi mã Python. Hãy nhớ rằng thứ tự phân biệt chữ hoa chữ thường. Ví dụ cho bảng chữ cái Latinh, "Bus" xuất hiện trước "bus". ví dụ sau cho thấy các toán tử so sánh này hoạt động như thế nào trong thực tế.
4. So sánh không phân biệt chữ hoa chữ thườngCác ví dụ trước tập trung vào các kết hợp chính xác giữa các chuỗi. Để cho phép so sánh phân biệt dạng chữ, Python cung cấp các phương thức chuỗi đặc biệt như upper () và lower (). Cả hai đều có sẵn trực tiếp dưới dạng các phương thức của đối tượng chuỗi theo. upper () chuyển đổi toàn bộ chuỗi thành chữ in hoa và thấp hơn () thành chữ thường, tương ứng. Danh sách tiếp theo cho thấy cách sử dụng phương thức lower ().
5. Sử dụng Regular Expression hoặc "regex"Để sử dụng cơ chế này trong Python, hãy import re module đầu tiên và xác định một mẫu cụ thể, tiếp theo. 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 tất cả các chuỗi trong đó mẫu tìm kiếm xảy ra bất kể vị trí của chuỗi - ở đầu, hoặc ở giữa, hoặc ở cuối.
6. So sánh nhiều dòng và danh sáchSử dụng mô-đun difflib Python cũng cung cấp cách so sánh các chuỗi nhiều dòng và toàn bộ danh sách các 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ụ khác nhau. Ví dụ tiếp theo so sánh hai chuỗi nhiều dòng theo từng dòng và hiển thị các xóa cũng như các bổ sung. Sau khi khởi tạo đối tượng Differ trong dòng 12, phép so sánh được thực hiện bằng phương thức compare () trong dòng 15. Kết quả được in trên stdout (dòng 18).
Các dòng có xóa được biểu thị bằng dấu - trong khi các dòng có phần bổ sung bắt đầu bằng dấu +. Hơn nữa, các dòng có thay đổi bắt đầu bằng dấu chấm hỏi. Thay đổi được chỉ định bằng cách sử dụng ^ dấu hiệu ở vị trí theo. Các dòng không có chỉ báo vẫn giống nhau. |