Hướng dẫn python check if list of characters in string - python kiểm tra xem danh sách các ký tự trong chuỗi

Thư viện ESMRE thực hiện thủ thuật. Trong trường hợp của bạn, ESM đơn giản hơn (một phần của ESMRE) là những gì bạn muốn.esmre library does the trick. In your case, the simpler, esm (part of esmre) is what you want.

https://pypi.python.org/pypi/esmre/

https://code.google.com/p/esmre/

Họ có tài liệu và ví dụ tốt: lấy từ các ví dụ của họ:

>>> import esm
>>> index = esm.Index()
>>> index.enter("he")
>>> index.enter("she")
>>> index.enter("his")
>>> index.enter("hers")
>>> index.fix()
>>> index.query("this here is history")
[((1, 4), 'his'), ((5, 7), 'he'), ((13, 16), 'his')]
>>> index.query("Those are his sheep!")
[((10, 13), 'his'), ((14, 17), 'she'), ((15, 17), 'he')]
>>> 

Tôi đã thực hiện một số bài kiểm tra hiệu suất:

import random, timeit, string, esm

def uz(lelist, lestring):
    for x in lelist:
        if lestring.count(x):
            return 'Yep. "%s" contains characters from "%s" item.' % (lestring, x)



def ab(lelist, lestring):
    return [e for e in lelist if e in lestring]


def use_esm(index, lestring):
    return index.query(lestring)

for TEXT_LEN in [5, 50, 1000]:
    for SEARCH_LEN in [5, 20]:
        for N in [5, 50, 1000, 10000]:
            if TEXT_LEN < SEARCH_LEN:
                continue

            print 'TEXT_LEN:', TEXT_LEN, 'SEARCH_LEN:', SEARCH_LEN, 'N:', N

            lestring = ''.join((random.choice(string.ascii_uppercase + string.digits) for _ in range(TEXT_LEN)))
            lelist = [''.join((random.choice(string.ascii_uppercase + string.digits) for _ in range(SEARCH_LEN))) for _
                      in range(N)]

            index = esm.Index()
            for i in lelist:
                index.enter(i)
            index.fix()

            t_ab = timeit.Timer("ab(lelist, lestring)", setup="from __main__ import lelist, lestring, ab")
            t_uz = timeit.Timer("uz(lelist, lestring)", setup="from __main__ import lelist, lestring, uz")
            t_esm = timeit.Timer("use_esm(index, lestring)", setup="from __main__ import index, lestring, use_esm")

            ab_time = t_ab.timeit(1000)
            uz_time = t_uz.timeit(1000)
            esm_time = t_esm.timeit(1000)

            min_time = min(ab_time, uz_time, esm_time)
            print '  ab%s: %f' % ('*' if ab_time == min_time else '', ab_time)
            print '  uz%s: %f' % ('*' if uz_time == min_time else '', uz_time)
            print '  esm%s %f:' % ('*' if esm_time == min_time else '', esm_time)

Và có kết quả đó phụ thuộc chủ yếu vào số lượng mục mà người ta đang tìm kiếm (trong trường hợp của tôi, 'n'):

TEXT_LEN: 1000 SEARCH_LEN: 20 N: 5
  ab*: 0.001733
  uz: 0.002512
  esm 0.126853:

TEXT_LEN: 1000 SEARCH_LEN: 20 N: 50
  ab*: 0.017564
  uz: 0.023701
  esm 0.079925:

TEXT_LEN: 1000 SEARCH_LEN: 20 N: 1000
  ab: 0.370371
  uz: 0.489523
  esm* 0.133783:

TEXT_LEN: 1000 SEARCH_LEN: 20 N: 10000
  ab: 3.678790
  uz: 4.883575
  esm* 0.259605:

Sử dụng hàm tất cả () để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác không, ví dụ: Nếu tất cả (chuỗi con trong my_str cho chuỗi con trong list_of_strings):. Hàm tất cả () sẽ trả về true nếu tất cả các chuỗi con tồn tại trong chuỗi và sai.

Làm thế nào để bạn kiểm tra xem một danh sách các chuỗi có trong một chuỗi không?contains a substring is one of the most common tasks in any programming language. Python offers many ways to check if a string contains a substring. The simplest and fastest way to check whether a string contains a substring or not in Python is using the "in" operator , which is used as a comparison operator . Some other Python methods such as find(), index(), count() etc. also help to Check if a string contains a substring.

Sử dụng bất kỳ () để kiểm tra xem một chuỗi có chứa một phần tử từ danh sách không. Gọi bất kỳ (có thể lặp lại) với biểu thức máy phát được kiểm tra xem có bất kỳ mục nào từ danh sách có trong chuỗi không. Sử dụng phần tử cú pháp trong chuỗi cho phần tử trong danh sách để xây dựng biểu thức máy phát.

Làm thế nào để bạn kiểm tra xem một chuỗi chỉ chứa các chữ cái nhất định?fastest way to check whether a string contains a substring or not in Python is the "in" operator . This operator returns true if the string contains the characters, otherwise, it returns false .

đầu ra

Sử dụng phương thức Test () để kiểm tra xem một chuỗi chỉ chứa các chữ cái, ví dụ: /^[a-za-z]+$/. Kiểm tra (str). Phương thức kiểm tra sẽ trả về true nếu chuỗi chỉ chứa các chữ cái và sai nếu không."in" operator takes two arguments, one on the left and one on the right, and returns True if the left argument string is contained within the right argument string.

Kiểm tra xem chuỗi có chứa chất nền trong Python không

Hướng dẫn python check if list of characters in string - python kiểm tra xem danh sách các ký tự trong chuỗi

Kiểm tra xem một chuỗi có chứa chuỗi con có phải là một trong những tác vụ phổ biến nhất trong bất kỳ ngôn ngữ lập trình nào. Python cung cấp nhiều cách để kiểm tra xem một chuỗi có chứa chuỗi con không. Cách đơn giản và nhanh nhất để kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python có sử dụng toán tử "trong" hay không, được sử dụng làm toán tử so sánh. Một số phương thức Python khác như Find (), Index (), Count (), v.v. cũng giúp kiểm tra xem một chuỗi có chứa chuỗi con không.case sensitive i.e, it will treat the Uppercase characters and Lowercase characters differently.

Sử dụng toán tử "In" của Python

Cách đơn giản và nhanh nhất để kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python là toán tử "trong". Toán tử này trả về true nếu chuỗi chứa các ký tự, nếu không, nó sẽ trả về sai.__contains__() method that we can use to check if it contains another string or not. When we use Python "in" operator , internally it calls __contains__() function. The __contains__ method defines how instances of class behave when they appear at right side of in and not in operator. We can use this function directly too, but don't . Methods that start with underscores are considered semantically private , however it's recommended to use in operator for readability purposes.

Sử dụng phương thức str.find () của Python

Một phương thức khác bạn có thể sử dụng là phương thức chuỗi.find (). Phương thức Find () đánh giá nếu chuỗi chứa một chuỗi con. Nếu có, phương thức Find () trả về chỉ số bắt đầu của một chuỗi con trong chuỗi nếu không nó sẽ trả về -1.string.find() method . The find() method evaluate if the string contains a substring . If it does, the find() method returns the starting index of a substring within the string otherwise it returns -1 .

đầu ra

Thêm phương thức find ()

Hướng dẫn python check if list of characters in string - python kiểm tra xem danh sách các ký tự trong chuỗi

Sử dụng phương thức str.find () là cách ít pythonic, nhưng nó vẫn được chấp nhận. Nó dài hơn và khó hiểu hơn một chút, nhưng nó vẫn hoàn thành công việc.str.find() method is the less Pythonic way , but it's still accepted. It's longer and a little bit more confusing, but it still gets the job done.

Sử dụng biểu thức thông thường Python

Biểu thức chính quy được sử dụng rộng rãi để khớp mẫu. Python có một gói tích hợp có tên Re, có thể được sử dụng để làm việc với các biểu thức thông thường. Mô -đun RE chứa một hàm gọi là search (), nó có thể được sử dụng để kiểm tra xem một chuỗi có chứa mẫu tìm kiếm được chỉ định không.pattern matching . Python has a built-in package called re , which can be used to work with Regular Expressions . The re module contains a function called search() , it can be used to check if a string contains the specified search pattern .

thí dụ

đầu ra

Sử dụng phương thức str.count ()

Nếu bạn muốn đếm số lần xuất hiện của một chuỗi con cụ thể trong một chuỗi, thì bạn có thể sử dụng phương thức Python Count (). Nếu chất nền không được tìm thấy trong một chuỗi, hàm sẽ trả về 0.number of occurrences of a specific substring in a string, then you can use Python count() method . If the substring is not found in a string, the function returns 0 .

Hướng dẫn python check if list of characters in string - python kiểm tra xem danh sách các ký tự trong chuỗi


Làm thế nào để bạn kiểm tra xem một chuỗi có chứa danh sách các từ trong Python không?

Sử dụng bất kỳ () để kiểm tra xem chuỗi có chứa phần tử từ danh sách không. Sử dụng bất kỳ chức năng nào là cách cổ điển nhất mà bạn có thể thực hiện nhiệm vụ này và cũng hiệu quả. Hàm này kiểm tra đối sánh trong chuỗi với khớp của từng phần tử của danh sách. to check if string contains element from list. Using any function is the most classical way in which you can perform this task and also efficiently. This function checks for match in string with match of each element of list.

Làm thế nào để bạn kiểm tra xem nhiều ký tự đang ở trong một chuỗi python?

Sử dụng hàm tất cả () để kiểm tra xem nhiều chuỗi có tồn tại trong một chuỗi khác không, ví dụ:Nếu tất cả (chuỗi con trong my_str cho chuỗi con trong list_of_strings):.Hàm tất cả () sẽ trả về true nếu tất cả các chuỗi con tồn tại trong chuỗi và sai. to check if multiple strings exist in another string, e.g. if all(substring in my_str for substring in list_of_strings): . The all() function will return True if all of the substrings exist in the string and False otherwise.

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

Sử dụng bất kỳ () để kiểm tra xem một chuỗi có chứa một phần tử từ danh sách không.Gọi bất kỳ (có thể lặp lại) với biểu thức máy phát được kiểm tra xem có bất kỳ mục nào từ danh sách có trong chuỗi không.Sử dụng phần tử cú pháp trong chuỗi cho phần tử trong danh sách để xây dựng biểu thức máy phát.. Call any(iterable) with iterable as a generator expression that checks if any item from the list is in the string. Use the syntax element in string for element in list to build the generator expression.

Làm thế nào để bạn kiểm tra xem một chuỗi chỉ chứa các chữ cái nhất định?

Sử dụng phương thức Test () để kiểm tra xem một chuỗi chỉ chứa các chữ cái, ví dụ:/^[a-za-z]+$/.Kiểm tra (str).Phương thức kiểm tra sẽ trả về true nếu chuỗi chỉ chứa các chữ cái và sai nếu không., e.g. /^[a-zA-Z]+$/. test(str) . The test method will return true if the string contains only letters and false otherwise.