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 một chuỗi con trong Python không. Như thường lệ, mỗi cách tiếp cận chúng tôi sẽ đề cập có những ưu và nhược điểm khác nhau.
Các nhà điều hành trong
Cách dễ nhất để kiểm tra xem chuỗi Python có chứa chất nền là sử dụng toán tử
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 không.Toán tử
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 được sử dụng để kiểm tra các cấu trúc dữ liệu để thành viên trong Python. Nó trả về một boolean [hoặc fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
6 hoặc fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
7]. Để kiểm tra xem một chuỗi có chứa chuỗi con trong Python bằng toán tử fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 không, chúng tôi chỉ cần gọi nó trên SuperString:fullstring = "StackAbuse"
substring = "tack"
if substring in fullstring:
print["Found!"]
else:
print["Not found!"]
Toán tử này là tốc ký để gọi phương thức
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
9 của đố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 không. Điều đáng chú ý là nó không an toàn, vì vậy nếu fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
0 của chúng tôi chỉ ra fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
1, một ngoại lệ sẽ bị ném:TypeError: argument of type 'NoneType' is not iterable
Để tránh điều này, trước tiên bạn sẽ muốn kiểm tra xem nó có chỉ vào
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
1 hay không:fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
Phương thức chuỗi.index []
Loại chuỗi trong Python có một phương thức gọi là
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
3 có thể được sử dụng để tìm chỉ số bắt đầu của lần xuất hiện đầu tiên của chuỗi con trong chuỗi.Kiểm tra hướng dẫn thực hành của chúng tôi, thực tế để học Git, với các thực hành tốt nhất, các tiêu chuẩn được công nghiệp chấp nhận và bao gồm bảng gian lận. Ngừng các lệnh git googling và thực sự tìm hiểu nó!
Nếu không tìm thấy chất nền, ngoại lệ
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
4 được ném, có thể được xử lý với khối Expet-Offce-Else:fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
Phương pháp này rất hữu ích nếu bạn cần biết vị trí của chuỗi con, trái ngược với sự tồn tại của nó trong toàn bộ chuỗi.
Phương thức chuỗi.find []
Loại chuỗi có một phương thức khác được gọi là
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
5 thuận tiện hơn để sử dụng so với fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
3, 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
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
7 không tìm thấy một trận đấu, nó sẽ trả về -1, nếu không, nó sẽ trả về chỉ số bên trái nhất của chuỗi con trong chuỗi lớn hơn.fullstring = "StackAbuse"
substring = "tack"
if fullstring.find[substring] != -1:
print["Found!"]
else:
print["Not found!"]
Nếu bạn muốn tránh cần phải bắt lỗi, thì phương pháp này sẽ được ưu tiên hơn
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
3.Biểu thức thông thường [Regex]
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. Python được vận chuyển với một mô-đun tích hợp cho các biểu thức thông thường, được gọi là
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
9. Mô -đun fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
9 chứa một hàm gọi là fullstring = "StackAbuse"
substring = "tack"
if fullstring.find[substring] != -1:
print["Found!"]
else:
print["Not found!"]
1, chúng ta có thể sử dụng để phù hợp với mẫu 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 cần một chức năng phù hợp phức tạp hơn, như phù hợp với trường hợp không nhạy cảm. Nếu không, nên tránh tốc độ biến chứng và tốc độ chậm hơn cho các trường hợp sử dụng phù hợp với chất nền đơ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 cam kết ban đầu - 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 các chương trình yêu thích của họ được mã hóa. Dự án nổi bật của nó giúp mọi người học Git ở cấp độ mã.
Nếu bạn mới lập trình hoặc đến từ một ngôn ngữ lập trình khác ngoài Python, bạn có thể đang tìm cách tốt nhất để kiểm tra xem một chuỗi có chứa một chuỗi khác trong Python hay không.
Xác định các chuỗi con như vậy có ích khi bạn làm việc với nội dung văn bản từ một tệp hoặc sau khi bạn đã nhận được đầu vào của người dùng. Bạn có thể muốn thực hiện các hành động khác nhau trong chương trình của mình tùy thuộc vào việc có thể có trên nền hay không.
Trong hướng dẫn này, bạn sẽ tập trung vào cách pythonic nhất để giải quyết nhiệm vụ này, sử dụng nhà điều hành thành viên
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4. Ngoài ra, bạn sẽ học cách xác định các phương thức chuỗi phù hợp cho các trường hợp sử dụng liên quan, nhưng khác nhau.membership operator fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4. Additionally, you’ll learn how to identify the right string methods for related, but different, use cases.Cuối cùng, bạn cũng sẽ học cách tìm các chất nền trong các cột gấu trúc. Điều này rất hữu ích nếu bạn cần tìm kiếm thông qua dữ liệu từ tệp CSV. Bạn có thể sử dụng cách tiếp cận mà bạn sẽ học trong phần tiếp theo, nhưng nếu bạn làm việc với dữ liệu dạng bảng, thì tốt nhất là tải dữ liệu vào DataFrame của Pandas và tìm kiếm các chất nền trong gấu trúc.find substrings in pandas columns. This is helpful if you need to search through data from a CSV file. You could use the approach that you’ll learn in the next section, but if you’re working with tabular data, it’s best to load the data into a pandas DataFrame and search for substrings in pandas.
Cách xác nhận rằng chuỗi python chứa một chuỗi khác
Nếu bạn cần kiểm tra xem một chuỗi có chứa chuỗi con hay không, hãy sử dụng toán tử thành viên Python,
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4. Trong Python, đây là cách được khuyến nghị để xác nhận sự tồn tại của một chuỗi con trong một chuỗi:>>>
>>> raw_file_content = """Hi there and welcome.
... This is a special hidden file with a SECRET secret.
... I don't want to tell you The Secret,
... but I do want to secretly tell you that I have one."""
>>> "secret" in raw_file_content
True
Nhà điều hành thành viên
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 cung cấp cho bạn một cách nhanh chóng và có thể đọc được để kiểm tra xem một chuỗi con có mặt trong một chuỗi không. Bạn có thể nhận thấy rằng dòng mã gần như đọc như tiếng Anh.Khi bạn sử dụng
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4, biểu thức trả về giá trị boolean:
6 nếu Python tìm thấy cơ chấtfullstring = None substring = "tack" if fullstring != None and substring in fullstring: print["Found!"] else: print["Not found!"]
7 Nếu Python didn tìm thấy cơ sởfullstring = None substring = "tack" if fullstring != None and substring in fullstring: print["Found!"] else: print["Not found!"]
Bạn có thể sử dụng cú pháp trực quan này trong các câu lệnh có điều kiện để đưa ra quyết định trong mã của mình:
>>>
>>> if "secret" in raw_file_content:
... print["Found!"]
...
Found!
Nhà điều hành thành viên
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 cung cấp cho bạn một cách nhanh chóng và có thể đọc được để kiểm tra xem một chuỗi con có mặt trong một chuỗi không. Bạn có thể nhận thấy rằng dòng mã gần như đọc như tiếng Anh.Khi bạn sử dụng
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4, biểu thức trả về giá trị boolean:fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
6 nếu Python tìm thấy cơ chấtfullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
7 Nếu Python didn tìm thấy cơ sởBạn có thể sử dụng cú pháp trực quan này trong các câu lệnh có điều kiện để đưa ra quyết định trong mã của mình:
Trong đoạn mã này, bạn sử dụng nhà điều hành thành viên để kiểm tra xem
fullstring = "StackAbuse"
substring = "tack"
if fullstring.find[substring] != -1:
print["Found!"]
else:
print["Not found!"]
8 có phải là phần phụ của fullstring = "StackAbuse"
substring = "tack"
if fullstring.find[substring] != -1:
print["Found!"]
else:
print["Not found!"]
9 hay không. Nếu có, thì bạn sẽ in một tin nhắn vào thiết bị đầu cuối. Bất kỳ mã nào được thụt vào sẽ chỉ thực thi nếu chuỗi python mà bạn đang kiểm tra đều có chứa nền tảng mà bạn cung cấp.>>>
>>> title_cased_file_content = """Hi There And Welcome.
... This Is A Special Hidden File With A Secret Secret.
... I Don't Want To Tell You The Secret,
... But I Do Want To Secretly Tell You That I Have One."""
>>> "secret" in title_cased_file_content
False
Nhà điều hành thành viên
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 cung cấp cho bạn một cách nhanh chóng và có thể đọc được để kiểm tra xem một chuỗi con có mặt trong một chuỗi không. Bạn có thể nhận thấy rằng dòng mã gần như đọc như tiếng Anh.Con người có một cách tiếp cận khác nhau đối với ngôn ngữ so với máy tính. Đây là lý do tại sao bạn sẽ thường muốn coi thường việc viết hoa khi bạn kiểm tra xem một chuỗi có chứa chất nền trong Python hay không.
Bạn có thể khái quát kiểm tra chuỗi con của mình bằng cách chuyển đổi toàn bộ văn bản đầu vào sang chữ thường:
>>>
>>> file_content = title_cased_file_content.lower[]
>>> print[file_content]
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.
>>> "secret" in file_content
True
Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.
Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.
Tìm hiểu thêm về chuỗi con
Nhà điều hành thành viên
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 là một cách tuyệt vời để kiểm tra mô tả xem có một chuỗi con trong một chuỗi hay không, nhưng nó không cung cấp cho bạn bất kỳ thông tin nào hơn thế. Nó rất hoàn hảo để kiểm tra có điều kiện, nhưng nếu bạn cần biết thêm về các nền tảng thì sao?Python cung cấp nhiều phương thức chuỗi phụ gia cho phép bạn kiểm tra số lượng chuỗi con đích mà chuỗi chứa, để tìm kiếm các chất nền theo các điều kiện phức tạp hoặc xác định vị trí chỉ mục của chuỗi con trong văn bản của bạn.
Trong phần này, bạn sẽ bao gồm một số phương thức chuỗi bổ sung có thể giúp bạn tìm hiểu thêm về chuỗi con.
Bằng cách sử dụng
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4, bạn đã xác nhận rằng chuỗi chứa chuỗi con. Nhưng bạn đã không nhận được bất kỳ thông tin nào về vị trí của bộ nền.Nếu bạn cần biết nơi nào trong chuỗi của mình, chuỗi con xảy ra, thì bạn có thể sử dụng
from re import search
fullstring = "StackAbuse"
substring = "tack"
if search[substring, fullstring]:
print "Found!"
else:
print "Not found!"
9 trên đối tượng chuỗi:>>>
TypeError: argument of type 'NoneType' is not iterable
0Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.
Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.
>>>
TypeError: argument of type 'NoneType' is not iterable
1Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.
Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.
Tìm hiểu thêm về chuỗi con
>>>
TypeError: argument of type 'NoneType' is not iterable
2Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.
Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.
>>>
TypeError: argument of type 'NoneType' is not iterable
3Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về những từ chỉ khác nhau về vốn hóa như cùng một từ, trong khi máy tính không có.
Bây giờ, bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ độ nhạy của trường hợp, đó là thời gian để đào sâu hơn và tìm hiểu thêm về chuỗi con.
Tìm hiểu thêm về chuỗi con
Nhà điều hành thành viên fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4 là một cách tuyệt vời để kiểm tra mô tả xem có một chuỗi con trong một chuỗi hay không, nhưng nó không cung cấp cho bạn bất kỳ thông tin nào hơn thế. Nó rất hoàn hảo để kiểm tra có điều kiện, nhưng nếu bạn cần biết thêm về các nền tảng thì sao?
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
Python cung cấp nhiều phương thức chuỗi phụ gia cho phép bạn kiểm tra số lượng chuỗi con đích mà chuỗi chứa, để tìm kiếm các chất nền theo các điều kiện phức tạp hoặc xác định vị trí chỉ mục của chuỗi con trong văn bản của bạn.
Trong phần này, bạn sẽ bao gồm một số phương thức chuỗi bổ sung có thể giúp bạn tìm hiểu thêm về chuỗi con.
Bằng cách sử dụng
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4, bạn đã xác nhận rằng chuỗi chứa chuỗi con. Nhưng bạn đã không nhận được bất kỳ thông tin nào về vị trí của bộ nền.>>>
TypeError: argument of type 'NoneType' is not iterable
4Nếu bạn cần biết nơi nào trong chuỗi của mình, chuỗi con xảy ra, thì bạn có thể sử dụng
from re import search
fullstring = "StackAbuse"
substring = "tack"
if search[substring, fullstring]:
print "Found!"
else:
print "Not found!"
9 trên đối tượng chuỗi:Khi bạn gọi
from re import search
fullstring = "StackAbuse"
substring = "tack"
if search[substring, fullstring]:
print "Found!"
else:
print "Not found!"
9 trên chuỗi và truyền nó là một đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên của lần xuất hiện đầu tiên của chuỗi con.>>>
TypeError: argument of type 'NoneType' is not iterable
5Nhưng điều gì sẽ xảy ra nếu bạn muốn tìm thấy những sự xuất hiện khác của chuỗi con? Phương pháp
from re import search
fullstring = "StackAbuse"
substring = "tack"
if search[substring, fullstring]:
print "Found!"
else:
print "Not found!"
9 cũng có một đối số thứ hai có thể xác định tại vị trí chỉ mục để bắt đầu tìm kiếm. Bằng cách vượt qua các vị trí chỉ mục cụ thể, do đó bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định được:Khi bạn vượt qua một chỉ số bắt đầu mà qua lần xuất hiện đầu tiên của chuỗi con, thì các tìm kiếm Python bắt đầu từ đó. Trong trường hợp này, bạn có được một trận đấu khác chứ không phải
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
4.>>>
TypeError: argument of type 'NoneType' is not iterable
6Có hai trận đấu tiềm năng trong văn bản của bạn, nhưng bạn chỉ khớp kết quả đầu tiên phù hợp với truy vấn của bạn. Khi bạn sử dụng
>>> if "secret" in raw_file_content:
... print["Found!"]
...
Found!
7, Python một lần nữa chỉ tìm thấy trận đấu đầu tiên. Điều gì sẽ xảy ra nếu bạn muốn tất cả các đề cập của fullstring = "StackAbuse"
substring = "tack"
if fullstring.find[substring] != -1:
print["Found!"]
else:
print["Not found!"]
8 phù hợp với một điều kiện nhất định?Để tìm tất cả các trận đấu bằng cách sử dụng
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
9, bạn có thể làm việc với >>> title_cased_file_content = """Hi There And Welcome.
... This Is A Special Hidden File With A Secret Secret.
... I Don't Want To Tell You The Secret,
... But I Do Want To Secretly Tell You That I Have One."""
>>> "secret" in title_cased_file_content
False
6:>>>
TypeError: argument of type 'NoneType' is not iterable
7Bằng cách sử dụng
>>> title_cased_file_content = """Hi There And Welcome.
... This Is A Special Hidden File With A Secret Secret.
... I Don't Want To Tell You The Secret,
... But I Do Want To Secretly Tell You That I Have One."""
>>> "secret" in title_cased_file_content
False
6, bạn có thể tìm thấy tất cả các trận đấu của mẫu trong văn bản của bạn. Python lưu tất cả các trận đấu dưới dạng chuỗi trong danh sách cho bạn.Khi bạn sử dụng một nhóm bắt giữ, bạn có thể chỉ định phần nào của trận đấu bạn muốn giữ trong danh sách của mình bằng cách gói phần đó trong ngoặc đơn:
>>>
TypeError: argument of type 'NoneType' is not iterable
8Bằng cách gói bí mật trong ngoặc đơn, bạn đã xác định một nhóm chụp duy nhất. Hàm
>>> title_cased_file_content = """Hi There And Welcome.
... This Is A Special Hidden File With A Secret Secret.
... I Don't Want To Tell You The Secret,
... But I Do Want To Secretly Tell You That I Have One."""
>>> "secret" in title_cased_file_content
False
8 trả về một danh sách các chuỗi phù hợp với nhóm bắt giữ, miễn là có chính xác một nhóm chụp trong mẫu. Bằng cách thêm các dấu ngoặc đơn xung quanh bí mật, bạn đã quản lý để thoát khỏi dấu câu!Sử dụng
>>> title_cased_file_content = """Hi There And Welcome.
... This Is A Special Hidden File With A Secret Secret.
... I Don't Want To Tell You The Secret,
... But I Do Want To Secretly Tell You That I Have One."""
>>> "secret" in title_cased_file_content
False
6 với các nhóm khớp là một cách mạnh mẽ để trích xuất các chuỗi con từ văn bản của bạn. Nhưng bạn chỉ nhận được một danh sách các chuỗi, điều đó có nghĩa là bạn đã mất các vị trí chỉ mục mà bạn có quyền truy cập khi bạn đang sử dụng >>> if "secret" in raw_file_content:
... print["Found!"]
...
Found!
7.Nếu bạn muốn giữ thông tin đó xung quanh, thì
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
9 có thể cung cấp cho bạn tất cả các trận đấu trong trình lặp:>>>
TypeError: argument of type 'NoneType' is not iterable
9Khi bạn sử dụng
>>> file_content = title_cased_file_content.lower[]
>>> print[file_content]
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.
>>> "secret" in file_content
True
2 và chuyển nó một mẫu tìm kiếm và nội dung văn bản của bạn làm đối số, bạn có thể truy cập từng đối tượng >>> if "secret" in raw_file_content:
... print["Found!"]
...
Found!
9 có chứa chuỗi con, cũng như các vị trí chỉ mục bắt đầu và kết thúc của nó.Bạn có thể nhận thấy rằng dấu câu hiển thị trong các kết quả này mặc dù bạn vẫn đang sử dụng nhóm bắt giữ. Điều đó bởi vì biểu diễn chuỗi của một đối tượng
>>> if "secret" in raw_file_content:
... print["Found!"]
...
Found!
9 hiển thị toàn bộ trận đấu thay vì chỉ là nhóm chụp đầu tiên.Nhưng đối tượng
>>> if "secret" in raw_file_content:
... print["Found!"]
...
Found!
9 là một thùng chứa thông tin mạnh mẽ và, giống như bạn đã thấy trước đó, bạn có thể chỉ chọn thông tin mà bạn cần:>>>
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
0Bằng cách gọi
>>> file_content = title_cased_file_content.lower[]
>>> print[file_content]
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.
>>> "secret" in file_content
True
6 và chỉ định rằng bạn muốn nhóm chụp đầu tiên, bạn đã chọn từ bí mật mà không có dấu câu từ mỗi chuỗi con phù hợp.Bạn có thể đi sâu vào chi tiết hơn với việc khớp chuỗi con của mình khi bạn sử dụng các biểu thức thông thường. Thay vì chỉ kiểm tra xem một chuỗi có chứa một chuỗi khác hay không, bạn có thể tìm kiếm các chất nền theo các điều kiện phức tạp.
Sử dụng các biểu thức thông thường với
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
9 là một cách tiếp cận tốt nếu bạn cần thông tin về các nền tảng hoặc nếu bạn cần tiếp tục làm việc với chúng sau khi bạn đã tìm thấy chúng trong văn bản. Nhưng nếu bạn làm việc với dữ liệu bảng thì sao? Đối với điều đó, bạn sẽ chuyển sang gấu trúc.Tìm một chuỗi con trong cột DataFrame Pandas
Nếu bạn làm việc với dữ liệu không đến từ một tệp văn bản đơn giản hoặc từ đầu vào của người dùng, nhưng từ tệp CSV hoặc bảng Excel, thì bạn có thể sử dụng phương pháp tương tự như đã thảo luận ở trên.
Tuy nhiên, có một cách tốt hơn để xác định ô nào trong một cột chứa một nền tảng: bạn sẽ sử dụng gấu trúc! Trong ví dụ này, bạn sẽ làm việc với một tệp CSV chứa tên và khẩu hiệu của công ty giả. Bạn có thể tải xuống tệp bên dưới nếu bạn muốn làm việc cùng:pandas! In this example, you’ll work with a CSV file that contains fake company names and slogans. You can download the file below if you want to work along:
Khi bạn làm việc với dữ liệu dạng bảng trong Python, nó thường tốt nhất để tải nó vào gấu trúc
>>> file_content = title_cased_file_content.lower[]
>>> print[file_content]
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.
>>> "secret" in file_content
True
8 trước:>>>
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
1Trong khối mã này, bạn đã tải một tệp CSV chứa một nghìn hàng dữ liệu công ty giả vào một khung dữ liệu gấu trúc và kiểm tra năm hàng đầu tiên bằng
>>> file_content = title_cased_file_content.lower[]
>>> print[file_content]
hi there and welcome.
this is a special hidden file with a secret secret.
i don't want to tell you the secret,
but i do want to secretly tell you that i have one.
>>> "secret" in file_content
True
9.Sau khi bạn tải dữ liệu vào DataFrame, bạn có thể nhanh chóng truy vấn toàn bộ cột Pandas để lọc cho các mục có chứa chuỗi con:
>>>
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
2Bạn có thể sử dụng
TypeError: argument of type 'NoneType' is not iterable
00 trên cột gấu trúc và chuyển nó phần phụ làm đối số để lọc cho các hàng có chứa chuỗi con.Khi bạn làm việc với
TypeError: argument of type 'NoneType' is not iterable
00 và bạn cần các kịch bản trận đấu phức tạp hơn, bạn cũng có thể sử dụng các biểu thức thông thường! Bạn chỉ cần vượt qua mẫu tìm kiếm tuân thủ Regex làm đối số phụ:>>>
fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
3Trong đoạn mã này, bạn đã sử dụng cùng một mẫu mà bạn đã sử dụng trước đó để chỉ khớp với các từ có chứa bí mật nhưng sau đó tiếp tục với một hoặc nhiều ký tự từ [
TypeError: argument of type 'NoneType' is not iterable
02]. Chỉ có một trong những công ty trong bộ dữ liệu giả này dường như hoạt động bí mật!Bạn có thể viết bất kỳ mẫu Regex phức tạp nào và chuyển nó sang
TypeError: argument of type 'NoneType' is not iterable
00 để khắc từ cột gấu trúc của bạn chỉ các hàng mà bạn cần cho phân tích của mình.Sự kết luận
Giống như một thợ săn kho báu dai dẳng, bạn đã tìm thấy mỗi
fullstring = "StackAbuse"
substring = "tack"
if fullstring.find[substring] != -1:
print["Found!"]
else:
print["Not found!"]
8, bất kể nó được ẩn đi đến mức nào! Trong quá trình này, bạn đã học được rằng cách tốt nhất để kiểm tra xem một chuỗi có chứa chuỗi con trong Python hay không là sử dụng toán tử thành viên fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4.fullstring = None
substring = "tack"
if fullstring != None and substring in fullstring:
print["Found!"]
else:
print["Not found!"]
4
membership operator.Bạn cũng đã học cách sử dụng mô tả hai phương thức chuỗi khác, thường bị sử dụng sai để kiểm tra các chất nền:string methods, which are often misused to check for substrings:
3 để đếm các lần xuất hiện của chuỗi con trong chuỗi>>> raw_file_content = """Hi there and welcome. ... This is a special hidden file with a SECRET secret. ... I don't want to tell you The Secret, ... but I do want to secretly tell you that I have one.""" >>> "secret" in raw_file_content True
9 để có được vị trí chỉ số của sự khởi đầu của chuỗi confrom re import search fullstring = "StackAbuse" substring = "tack" if search[substring, fullstring]: print "Found!" else: print "Not found!"
Sau đó, bạn đã khám phá cách tìm các chất nền theo các điều kiện nâng cao hơn với các biểu thức thông thường và một vài chức năng trong mô -đun Python tựa
fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
9.regular expressions and a few functions in Python’s fullstring = "StackAbuse"
substring = "tack"
try:
fullstring.index[substring]
except ValueError:
print["Not found!"]
else:
print["Found!"]
9
module.Cuối cùng, bạn cũng đã tìm hiểu cách bạn có thể sử dụng phương thức DataFrame
TypeError: argument of type 'NoneType' is not iterable
00 để kiểm tra các mục nhập trong gấu trúc DataFrame chứa một chuỗi con.pandas DataFrame contain a substring .Bây giờ bạn đã biết cách chọn cách tiếp cận thành ngữ nhất khi bạn làm việc với các nền tảng trong Python. Tiếp tục sử dụng phương pháp mô tả nhất cho công việc và bạn sẽ viết mã mà rất thú vị khi đọc và nhanh chóng để người khác hiểu.