Nếu bạn muốn kết hợp chính xác của các từ thì hãy xem xét từ mã thông báo từ chuỗi đích. Tôi sử dụng Word_Tokenize được đề xuất từ NLTK:
from nltk.tokenize import word_tokenize
Đây là chuỗi mã thông báo từ câu trả lời được chấp nhận:
a_string = "A string is more than its parts!"
tokens = word_tokenize[a_string]
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
Câu trả lời được chấp nhận được sửa đổi như sau:
matches_1 = ["more", "wholesome", "milk"]
[x in tokens for x in matches_1]
Out[42]: [True, False, False]
Như trong câu trả lời được chấp nhận, từ "nhiều hơn" vẫn còn khớp. Tuy nhiên, nếu "MO" trở thành một chuỗi khớp, câu trả lời được chấp nhận vẫn tìm thấy một trận đấu. Đó là một hành vi mà tôi không muốn.
matches_2 = ["mo", "wholesome", "milk"]
[x in a_string for x in matches_1]
Out[43]: [True, False, False]
Sử dụng mã thông báo Word, "Mo" không còn khớp nữa:
[x in tokens for x in matches_2]
Out[44]: [False, False, False]
Đó là hành vi bổ sung mà tôi muốn. Câu trả lời này cũng trả lời câu hỏi trùng lặp ở đây.
Python bất kỳ [] hàm
Python bất kỳ [] chức năng chấp nhận có thể lặp lại [danh sách, tuple, từ điển, v.v.] như một đối số và trả về đúng nếu bất kỳ yếu tố nào trong ITable là đúng, nếu không nó sẽ trả về sai. Nếu đối tượng có thể xóa, hàm bất kỳ [] sẽ trả về sai.any[] function accepts iterable [list, tuple, dictionary etc.] as an argument and return true if any of the element in iterable is true , else it returns false . If the iterable object is empty, the any[] function will return False.
bất kỳ vs tất cả
- Bất kỳ sẽ trả về đúng khi ít nhất một trong các yếu tố là sự thật. will return True when at least one of the elements is Truthy.
- Tất cả sẽ trở lại chỉ đúng khi tất cả các yếu tố là sự thật. will return True only when all the elements are Truthy.
Kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác không
Trong trường hợp này, chúng ta có thể sử dụng python "bất kỳ []"."any[]" .
Ở đây, tập lệnh trả về "tìm thấy một trận đấu", bởi vì ít nhất một từ tồn tại trong danh sách.
Ví dụ 2:
đầu ra
Cách kiểm tra xem chuỗi có chứa chất nền từ danh sách không
Nếu danh sách của bạn quá dài, tốt hơn là sử dụng biểu thức thông thường của Python.Regular Expression .
Ví dụ trên trả về "Tìm thấy một trận đấu" vì "một" tồn tại trong danh sách.
Kiểm tra xem một chuỗi có chứa nhiều từ khóa không
Bạn cũng có thể tìm thấy một giải pháp cho việc này bằng cách sử dụng lặp lại.iteration .
Tập lệnh trên "Tìm thấy một trận đấu" bởi vì "một" tồn tại trong danh sách Myl.
Tất cả các trận đấu bao gồm các bản sao trong một chuỗi
Nếu bạn muốn nhận tất cả các trận đấu bao gồm các bản sao từ danh sách:
Từ đầu tiên phù hợp trong một chuỗi từ danh sách
Nếu bạn muốn trận đấu đầu tiên với FALSE là mặc định:
Ví dụ trên trả về "một" bởi vì từ "một" là từ bắt đầu và cũng tồn tại trong danh sách myl.
Làm thế nào để trích xuất các từ đầu tiên và cuối cùng từ một chuỗi?
Tương tự để kiểm tra xem tất cả các chuỗi trong danh sách có được tìm thấy không, hãy sử dụng "tất cả" thay vì "bất kỳ" nào."all" instead of "any" .
Ví dụ trên trả về sai vì "sáu" không có trong chuỗi.
Trong hướng dẫn Python này, chúng ta sẽ tìm hiểu về các phương pháp khác nhau mà qua đó chúng ta có thể kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác trong Python không. Mục lục
Phương pháp 1: Sử dụng cho vòng lặp
Phương pháp 2: Sử dụng bất kỳ [] hàm nào:
Phương pháp 3: Sử dụng Re.Findall []
Phương pháp 4: Sử dụng cho vòng lặp và nếu
Bản tóm tắt
CODE:
listOfStr = ['big', 'this', 'is'] bigStr = "this is a big string" result = True for substr in listOfStr: if substr not in bigStr: result = False break if result: print['All strings from the list exist in the big string'] else: print['No, not all strings from the list exist in the big string']
OUTPUT:
All strings from the list exist in the big string
Phương pháp đầu tiên mà chúng ta sẽ sử dụng để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác trong Python hay không bằng cách sử dụng toán tử trong vòng lặp cho vòng lặp.
listOfStr = ['why', 'this', 'any', 'here', 'how'] bigStr = "this is a big string" result = False for substr in listOfStr: if substr in bigStr: result = True break if result: print['A string from the list exist in the big string'] else: print['No string from the list exist in the big string']
Giả sử chúng ta có một danh sách các chuỗi và một chuỗi lớn. Chúng tôi muốn kiểm tra xem tất cả các chuỗi từ danh sách có tồn tại trong chuỗi lớn hay không. Vì vậy, chúng tôi sẽ lặp lại tất cả các chuỗi con trong danh sách và kiểm tra xem tất cả chúng có tồn tại trong chuỗi lớn bằng cách sử dụng toán tử trong không.
A string from the list exist in the big string
Xem mã ví dụ bên dưới:
Phương pháp 2: Sử dụng bất kỳ [] hàm nào:
Phương pháp 3: Sử dụng Re.Findall []any[iterable] function. It returns True if the given iterable has any True value, otherwise it returns False, which here means not found. Here we will use some alphabets which will be stored in a list then we will compare it with a string to check if multiple strings exists in another string.
See the example code below :
Phương pháp 4: Sử dụng cho vòng lặp và nếu
# list of alphabets which need to be checked alphabets = ['z','a','p'] str_var = 'Python Programming Language Tutorial' # looping through alphabets then checking with any[] method if any[c in str_var for c in alphabets ]: print ["Found "]
Bản tóm tắt
a_string = "A string is more than its parts!"
tokens = word_tokenize[a_string]
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
0Phương pháp đầu tiên mà chúng ta sẽ sử dụng để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác trong Python hay không bằng cách sử dụng toán tử trong vòng lặp cho vòng lặp.
Phương pháp 3: Sử dụng Re.Findall []
Phương pháp 4: Sử dụng cho vòng lặp và nếure stands for Regular Expression which comes bundled with Python, mainly used for matching expressions. Here we will also be using any[] method. See the example below :
Phương pháp 4: Sử dụng cho vòng lặp và nếu
a_string = "A string is more than its parts!"
tokens = word_tokenize[a_string]
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
1Bản tóm tắt
a_string = "A string is more than its parts!"
tokens = word_tokenize[a_string]
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
0Phương pháp đầu tiên mà chúng ta sẽ sử dụng để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác trong Python hay không bằng cách sử dụng toán tử trong vòng lặp cho vòng lặp.
Phương pháp 4: Sử dụng cho vòng lặp và nếu
Bản tóm tắtfound variable will have matching elements store inside it. See the example below :
Phương pháp 4: Sử dụng cho vòng lặp và nếu
a_string = "A string is more than its parts!"
tokens = word_tokenize[a_string]
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
3Bản tóm tắt
a_string = "A string is more than its parts!"
tokens = word_tokenize[a_string]
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
4Phương pháp đầu tiên mà chúng ta sẽ sử dụng để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác trong Python hay không bằng cách sử dụng toán tử trong vòng lặp cho vòng lặp.
Bản tóm tắt
Vì vậy, trong bài viết này, chúng tôi đã tìm hiểu về bốn phương pháp khác nhau mà qua đó chúng tôi có thể kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác trong Pyhton không. Về cơ bản, bạn có thể sử dụng tất cả các phương pháp trên theo nhu cầu của mình nhưng phương pháp hữu ích nhất có thể là phương pháp 4 bởi vì trong đó bạn có thể nhận được tất cả các ký tự toán học cũng dễ hiểu và không sử dụng nhiều chức năng, nó chỉ sử dụng cho và nếu.
Luôn đọc các mã ví dụ và thử trên máy địa phương của bạn. Python 3.10.1 để viết ví dụ. Nhập Python, để kiểm tra phiên bản Python của bạn. Mã hóa hạnh phúc.Python 3.10.1 for writing examples. Type python –version to check your python version. Happy Coding.