Làm cách nào để kiểm tra xem một chuỗi có từ trong danh sách trong python không?

Kiểm tra xem một chuỗi có chứa chuỗi con hay không để tổng quát hóa các điều kiện và tạo mã linh hoạt hơn. Ngoài ra, tùy thuộc vào mô hình miền của bạn - việc kiểm tra xem một chuỗi có chứa chuỗi con hay không cũng có thể cho phép bạn suy ra các trường của một đối tượng, nếu một chuỗi tự mã hóa một trường

Trong hướng dẫn này, chúng ta sẽ xem cách kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python

Nhà điều hành trong

Cách dễ nhất để kiểm tra xem một chuỗi Python có chứa chuỗi con hay không là sử dụng toán tử in

Toán tử in được sử dụng để kiểm tra cấu trúc dữ liệu về tư cách thành viên trong Python. Nó trả về một Boolean (hoặc là True hoặc là False). Để kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python bằng cách sử dụng toán tử in, chúng ta chỉ cần gọi nó trên siêu chuỗi

fullstring = "StackAbuse"
substring = "tack"

if substring in fullstring:
    print("Found!")
else:
    print("Not found!")

Toán tử này là cách viết tắt để gọi phương thức

TypeError: argument of type 'NoneType' is not iterable
1 của một đối tượng và cũng hoạt động tốt để kiểm tra xem một mục có tồn tại trong danh sách hay không. Điều đáng chú ý là nó không phải là null-safe, vì vậy nếu
TypeError: argument of type 'NoneType' is not iterable
2 của chúng ta trỏ đến
TypeError: argument of type 'NoneType' is not iterable
3, thì một ngoại lệ sẽ được đưa ra

TypeError: argument of type 'NoneType' is not iterable

Để tránh điều này, trước tiên bạn cần kiểm tra xem nó có trỏ đến

TypeError: argument of type 'NoneType' is not iterable
3 hay không

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")

chuỗi. chỉ số () Phương thức

Kiểu Chuỗi trong Python có một phương thức gọi là

TypeError: argument of type 'NoneType' is not iterable
5 có thể được sử dụng để tìm chỉ mục bắt đầu của lần xuất hiện đầu tiên của một chuỗi con trong một chuỗi

Nếu không tìm thấy chuỗi con, một ngoại lệ

TypeError: argument of type 'NoneType' is not iterable
6 sẽ được đưa ra, có thể được xử lý bằng khối try-except-else

fullstring = "StackAbuse"
substring = "tack"

try:
    fullstring.index(substring)
except ValueError:
    print("Not found!")
else:
    print("Found!")

Phương pháp này hữu ích nếu bạn cũng cần biết vị trí của chuỗi con, thay vì chỉ sự tồn tại của nó trong chuỗi đầy đủ. Phương thức tự trả về chỉ mục

Mặc dù - để kiểm tra xem một chuỗi có chứa chuỗi con hay không, đây là một cách tiếp cận dài dòng

chuỗi. Phương thức tìm ()

Lớp String có một phương thức khác được gọi là

TypeError: argument of type 'NoneType' is not iterable
7 sử dụng thuận tiện hơn so với
TypeError: argument of type 'NoneType' is not iterable
5, chủ yếu là vì chúng ta không cần phải lo lắng về việc xử lý bất kỳ ngoại lệ nào

Nếu

TypeError: argument of type 'NoneType' is not iterable
7 không tìm thấy kết quả khớp, nó sẽ trả về -1, nếu không, nó sẽ trả về chỉ mục ngoài cùng bên trái của chuỗi con trong chuỗi lớn hơn

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ó

fullstring = "StackAbuse"
substring = "tack"

if fullstring.find(substring) != -1:
    print("Found!")
else:
    print("Not found!")

Đương nhiên, nó thực hiện tìm kiếm giống như

TypeError: argument of type 'NoneType' is not iterable
5 và trả về chỉ số bắt đầu của chuỗi con trong chuỗi cha

Biểu thức chính quy (RegEx)

Các biểu thức chính quy cung cấp một cách linh hoạt hơn (mặc dù phức tạp hơn) để kiểm tra các chuỗi để khớp mẫu. Với Biểu thức chính quy, bạn có thể thực hiện tìm kiếm linh hoạt và mạnh mẽ thông qua không gian tìm kiếm lớn hơn nhiều, thay vì kiểm tra đơn giản, như những lần trước

Python được vận chuyển với một mô-đun tích hợp cho các biểu thức chính quy, được gọi là

fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
1. Mô-đun
fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
1 chứa hàm có tên là
fullstring = None
substring = "tack"

if fullstring != None and substring in fullstring:
    print("Found!")
else:
    print("Not found!")
3, mà chúng ta có thể sử dụng để so khớp một mẫu chuỗi con

from re import search

fullstring = "StackAbuse"
substring = "tack"

if search(substring, fullstring):
    print "Found!"
else:
    print "Not found!"

Phương pháp này là tốt nhất nếu bạn đang cần một chức năng so khớp phức tạp hơn, chẳng hạn như so khớp không phân biệt chữ hoa chữ thường hoặc nếu bạn đang xử lý không gian tìm kiếm lớn. Mặt khác, nên tránh sự phức tạp và tốc độ chậm hơn của biểu thức chính quy đối với các trường hợp sử dụng khớp chuỗi con đơn giản

Bài viết này được viết bởi Jacob Stopak, một nhà tư vấn và nhà phát triển phần mềm với niềm đam mê giúp đỡ người khác cải thiện cuộc sống của họ thông qua mã. Jacob là người tạo ra InitialCommit - một trang web dành riêng để giúp các nhà phát triển tò mò tìm hiểu cách mã hóa các chương trình yêu thích của họ. Dự án nổi bật của nó giúp mọi người học Git ở cấp mã