Hướng dẫn how do you check for multiple strings in python? - làm thế nào để bạn kiểm tra nhiều chuỗi trong python?

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.

Phương pháp 4: Sử dụng cho vòng lặp và nếu

Phương pháp tiếp theo mà chúng ta sẽ sử dụng là giải pháp tốt nhất cho vấn đề này. Trong phương pháp này, chúng tôi sẽ lưu trữ bảng chữ cái phù hợp trong VAR tìm thấy và sau đó chúng tôi sẽ kiểm tra xem nó có thứ gì đó bên trong nó hay không. Biến được tìm thấy sẽ có lưu trữ các yếu tố phù hợp bên trong nó. Xem ví dụ dưới đây:

  • Như bạn có thể thấy trong mã và đầu ra trên, chúng tôi có một số yếu tố toán học và bằng cách sử dụng phương pháp này, chúng tôi đã tìm thấy thành công tất cả các chuỗi khớp trong bảng chữ cái VAS và STR_VAR. Ngoài ra, bạn có thể nhận thấy chương trình này là trường hợp nhạy cảm. Giống như chúng ta có cả p và p nhỏ trong bảng chữ cái nhưng trong str_var, chúng ta chỉ có 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 3: Sử dụng Re.Findall ()
  • Phương pháp 3: Sử dụng Re.Findall ()

Như bạn có thể thấy trong mã và đầu ra trên, chúng tôi có một số yếu tố toán học và bằng cách sử dụng phương pháp này, chúng tôi đã tìm thấy thành công tất cả các chuỗi khớp trong bảng chữ cái VAS và STR_VAR. Ngoài ra, bạn có thể nhận thấy chương trình này là trường hợp nhạy cảm. Giống như chúng ta có cả p và p nhỏ trong bảng chữ cái nhưng trong str_var, chúng ta chỉ có p

Bản tóm tắt

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.

Xem mã ví dụ bên dưới:

Quảng cáo

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

Ở đây chúng tôi được kiểm tra xem tất cả các chuỗi trong danh sách có tồn tại trong một chuỗi lớn hay không. Nếu bạn muốn kiểm tra xem bất kỳ chuỗi nào từ danh sách có tồn tại trong chuỗi lớn không, thì việc triển khai có ít khác nhau không,

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')

Đầu ra

A string from the list exist in the big string

Ở đây, chúng tôi lặp lại tất cả các chuỗi trong danh sách và cho mỗi chuỗi chúng tôi đã kiểm tra xem nó có tồn tại trong chuỗi lớn hay không. Nếu bất kỳ chuỗi nào từ danh sách tồn tại trong chuỗi lớn, thì hãy phá vỡ vòng lặp và in kết quả.

Phương pháp 2: Sử dụng bất kỳ () hàm nào:

Phương pháp thứ hai mà chúng ta sẽ sử dụng là hàm bất kỳ (có thể lặp lại). Nó trả về đúng nếu số lượng đã cho có bất kỳ giá trị thực, nếu không nó sẽ trả về sai, điều này có nghĩa là không tìm thấy. Ở đây chúng tôi sẽ sử dụng một số bảng chữ cái sẽ được lưu trữ trong danh sách sau đó chúng tôi sẽ so sánh nó với một chuỗi để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác hay không. Mã ví dụ bên dưới: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 :

MÃ SỐ :

# 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 ")

Đầu ra:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
0

Trong mã trên và đầu ra, bạn có thể thấy bằng cách sử dụng bất kỳ () chức năng nào, chúng tôi đã kiểm tra xem một chuỗi hoặc bất kỳ chuỗi nào từ nhiều chuỗi có trong một chuỗi lớn khác hay không. Ở đây bạn có thể thấy một số ký tự của danh sách bảng chữ cái có mặt trong str_var.

Phương pháp 3: Sử dụng Re.Findall ()

Phương pháp Antoher mà chúng ta có thể 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 là phương thức findall () của mô -đun regex hay không. RE là viết tắt của biểu thức thông thường đi kèm với Python, chủ yếu được sử dụng để phù hợp với các biểu thức. Ở đây chúng tôi cũng sẽ sử dụng bất kỳ () phương thức. Xem ví dụ dưới đây:re 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 :

MÃ SỐ :

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
1

Đầu ra:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
0

Trong mã trên và đầu ra, bạn có thể thấy bằng cách sử dụng bất kỳ () chức năng nào, chúng tôi đã kiểm tra xem một chuỗi hoặc bất kỳ chuỗi nào từ nhiều chuỗi có trong một chuỗi lớn khác hay không. Ở đây bạn có thể thấy một số ký tự của danh sách bảng chữ cái có mặt trong str_var.

Phương pháp 3: Sử dụng Re.Findall ()

Phương pháp Antoher mà chúng ta có thể 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 là phương thức findall () của mô -đun regex hay không. RE là viết tắt của biểu thức thông thường đi kèm với Python, chủ yếu được sử dụng để phù hợp với các biểu thức. Ở đây chúng tôi cũng sẽ sử dụng bất kỳ () phương thức. Xem ví dụ dưới đây:found variable will have matching elements store inside it. See the example below :

MÃ SỐ :

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
3

Đầu ra:

a_string = "A string is more than its parts!"
tokens = word_tokenize(a_string)
tokens
Out[46]: ['A', 'string', 'is', 'more', 'than', 'its', 'parts', '!']
4

Trong mã trên và đầu ra, bạn có thể thấy bằng cách sử dụng bất kỳ () chức năng nào, chúng tôi đã kiểm tra xem một chuỗi hoặc bất kỳ chuỗi nào từ nhiều chuỗi có trong một chuỗi lớn khác hay không. Ở đây bạn có thể thấy một số ký tự của danh sách bảng chữ cái có mặt trong str_var.

Phương pháp 3: Sử dụng Re.Findall ()

Phương pháp Antoher mà chúng ta có thể 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 là phương thức findall () của mô -đun regex hay không. RE là viết tắt của biểu thức thông thường đi kèm với Python, chủ yếu được sử dụng để phù hợp với các biểu thức. Ở đây chúng tôi cũng sẽ sử dụng bất kỳ () phương thức. Xem ví dụ dưới đây:

Trong mã ví dụ trên và đầu ra, bạn có thể thấy chúng tôi đã sử dụng kết hợp finadll () và bất kỳ () nào để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác trong Python không. Trước tiên, chúng tôi đã tham gia tất cả các chuỗi trong danh sách để tạo một mẫu regex, tức là S S | B | C | P | L, sau đó chuyển mẫu đó cho Findall (). Nó sẽ trả về một chuỗi các đối tượng phù hợp. Nếu không tìm thấy một trận đấu nào, nó sẽ trả về một chuỗi trống. Chúng tôi đã sử dụng hàm bất kỳ () nào để kiểm tra xem có bất kỳ phần tử nào có trong chuỗi được trả về hay không.Python 3.10.1 for writing examples. Type python –version to check your python version. Happy Coding.