Hướng dẫn how do you check if a string is a prefix of another string python? - làm cách nào để kiểm tra xem một chuỗi có phải là tiền tố của chuỗi python khác hay không?

Tôi muốn viết một hàm Python kiểm tra xem một chuỗi là chuỗi tiền tố của một chuỗi khác; không phải là một chuỗi phụ tùy ý của một chuỗi khác; Phải là tiền tố. Nếu có, trả lại đúng. Ví dụ,

list = ['abc', 'abcd', 'xyx', 'mno']

Trả về

list = ['abc', 'xyzabc', 'mno']
4 vì
list = ['abc', 'xyzabc', 'mno']
5 là tiền tố là
list = ['abc', 'xyzabc', 'mno']
6.

list = ['abc', 'xyzabc', 'mno']

Trả lại

list = ['abc', 'xyzabc', 'mno']
7

Tôi đã thử

list = ['abc', 'xyzabc', 'mno']
8 và danh sách hiểu, nhưng nó không hoạt động hoàn toàn. Đánh giá cao cho bất kỳ sự giúp đỡ hoặc con trỏ.

Hướng dẫn how do you check if a string is a prefix of another string python? - làm cách nào để kiểm tra xem một chuỗi có phải là tiền tố của chuỗi python khác hay không?

bagrat

6.9505 huy hiệu vàng27 Huy hiệu bạc47 Huy hiệu đồng5 gold badges27 silver badges47 bronze badges

Đã hỏi ngày 19 tháng 5 năm 2015 lúc 8:44May 19, 2015 at 8:44

8

Trước tiên chúng ta hãy sắp xếp độ dài

list = ['abc', 'xyzabc', 'mno']
9 W.R.T của chuỗi, do thực tế đã biết rằng các chuỗi phụ luôn có độ dài nhỏ hơn hoặc bằng chuỗi ban đầu, vì vậy sau khi sắp xếp chúng tôi có các chuỗi có độ dài nhỏ hơn khi bắt đầu danh sách và Sau đó, chúng tôi lặp lại danh sách được sắp xếp so sánh phần tử hiện tại với tất cả các phần tử bên cạnh, tối ưu hóa nhỏ này sẽ làm giảm sự phức tạp của vấn đề vì bây giờ chúng tôi không phải kết hợp từng yếu tố với mọi yếu tố khác.

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))

Đã trả lời ngày 19 tháng 5 năm 2015 lúc 8:56May 19, 2015 at 8:56

ZdarzdarZdaR

21.5K7 Huy hiệu vàng61 Huy hiệu bạc84 Huy hiệu đồng7 gold badges61 silver badges84 bronze badges

4

Sử dụng

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
0

import itertools

list1 = ["abc", "xyz", "abc123"]
products = itertools.product(list1, list1)
is_substringy = any(x.startswith(y) for x, y in products if x != y)

Điều này không được tối ưu hóa lắm, nhưng tùy thuộc vào lượng dữ liệu bạn phải xử lý, mã khá thanh lịch (và ngắn); Điều đó có thể vượt quá tốc độ trong trường hợp sử dụng của bạn.

Tuy nhiên, điều này giả định rằng bạn không có lặp lại thuần túy trong danh sách (nhưng bạn không có điều đó trong ví dụ của mình).

Đã trả lời ngày 19 tháng 5 năm 2015 lúc 8:59May 19, 2015 at 8:59

LexystardustlexystardustLexyStardust

1.0085 huy hiệu bạc17 huy hiệu đồng5 silver badges17 bronze badges

1

import itertools
mlist = ['abc', 'abcd', 'xyx', 'mno']
#combination of list elements, 2-by-2. without repetition  
In [638]: for i,j in itertools.combinations(mlist,2):
    print (i,j)
   .....:     
('abc', 'abcd')
('abc', 'xyx')
('abc', 'mno')
('abcd', 'xyx')
('abcd', 'mno')
('xyx', 'mno')
#r holds the final result. if there is any pair where one is a prefixed of another 
r=False
In [639]: for i,j in itertools.combinations(mlist,2):  
    r = r or i.startswith(j) # if i is the prefix of j. logical or
    r = r or j.startswith(i) # if j is the prefix of i
   .....:     

In [640]: r
Out[640]: True

Đã trả lời ngày 19 tháng 5 năm 2015 lúc 9:02May 19, 2015 at 9:02

MojmojMoj

5.6612 Huy hiệu vàng22 Huy hiệu bạc34 Huy hiệu đồng2 gold badges22 silver badges34 bronze badges

3

Tóm tắt: Trong hướng dẫn này, bạn sẽ học cách sử dụng phương thức chuỗi Python

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 để kiểm tra xem một chuỗi bắt đầu bằng một chuỗi khác.: in this tutorial, you’ll learn how to use the Python string
lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 method to check if a string begins with another string.

Giới thiệu về phương thức String String STARTSWITH ()

Phương thức

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 trả về
list = ['abc', 'xyzabc', 'mno']
4 nếu một chuỗi bắt đầu bằng một chuỗi khác. Nếu không, nó trả về
list = ['abc', 'xyzabc', 'mno']
7.

Sau đây cho thấy cú pháp của phương thức

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1:

str.startswith(prefix, [,start [,end ])

Code language: Python (python)

Phương thức

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 chấp nhận ba tham số:

  • lst1 = ['abc', 'abcd', 'xyx', 'mno']
    lst2 = ['abc', 'xyzabc', 'mno']
    lst3 = ["abc", "abc"]
    
    def check_list(lst):
        lst = list(set(lst))    #if you want to avoid redundant strings.
        lst.sort(key = lambda x:len(x))
    
        n = len(lst)
        for i in xrange(n):
            for j in xrange(i+1, n):
                if lst[j].startswith(lst[i]):
                    return True
        return False
    
    print check_list(lst1)
    print check_list(lst2)
    print check_list(lst3)
    >>> True
    >>> False
    >>> False #incase you use lst = list(set(lst))
    
    7 là một chuỗi hoặc một bộ chuỗi để tìm kiếm. Tham số
    lst1 = ['abc', 'abcd', 'xyx', 'mno']
    lst2 = ['abc', 'xyzabc', 'mno']
    lst3 = ["abc", "abc"]
    
    def check_list(lst):
        lst = list(set(lst))    #if you want to avoid redundant strings.
        lst.sort(key = lambda x:len(x))
    
        n = len(lst)
        for i in xrange(n):
            for j in xrange(i+1, n):
                if lst[j].startswith(lst[i]):
                    return True
        return False
    
    print check_list(lst1)
    print check_list(lst2)
    print check_list(lst3)
    >>> True
    >>> False
    >>> False #incase you use lst = list(set(lst))
    
    7 là bắt buộc.
  • lst1 = ['abc', 'abcd', 'xyx', 'mno']
    lst2 = ['abc', 'xyzabc', 'mno']
    lst3 = ["abc", "abc"]
    
    def check_list(lst):
        lst = list(set(lst))    #if you want to avoid redundant strings.
        lst.sort(key = lambda x:len(x))
    
        n = len(lst)
        for i in xrange(n):
            for j in xrange(i+1, n):
                if lst[j].startswith(lst[i]):
                    return True
        return False
    
    print check_list(lst1)
    print check_list(lst2)
    print check_list(lst3)
    >>> True
    >>> False
    >>> False #incase you use lst = list(set(lst))
    
    9 là vị trí mà phương pháp bắt đầu tìm kiếm
    lst1 = ['abc', 'abcd', 'xyx', 'mno']
    lst2 = ['abc', 'xyzabc', 'mno']
    lst3 = ["abc", "abc"]
    
    def check_list(lst):
        lst = list(set(lst))    #if you want to avoid redundant strings.
        lst.sort(key = lambda x:len(x))
    
        n = len(lst)
        for i in xrange(n):
            for j in xrange(i+1, n):
                if lst[j].startswith(lst[i]):
                    return True
        return False
    
    print check_list(lst1)
    print check_list(lst2)
    print check_list(lst3)
    >>> True
    >>> False
    >>> False #incase you use lst = list(set(lst))
    
    7. Tham số
    lst1 = ['abc', 'abcd', 'xyx', 'mno']
    lst2 = ['abc', 'xyzabc', 'mno']
    lst3 = ["abc", "abc"]
    
    def check_list(lst):
        lst = list(set(lst))    #if you want to avoid redundant strings.
        lst.sort(key = lambda x:len(x))
    
        n = len(lst)
        for i in xrange(n):
            for j in xrange(i+1, n):
                if lst[j].startswith(lst[i]):
                    return True
        return False
    
    print check_list(lst1)
    print check_list(lst2)
    print check_list(lst3)
    >>> True
    >>> False
    >>> False #incase you use lst = list(set(lst))
    
    9 là tùy chọn.
  • import itertools
    
    list1 = ["abc", "xyz", "abc123"]
    products = itertools.product(list1, list1)
    is_substringy = any(x.startswith(y) for x, y in products if x != y)
    
    2 là vị trí trong chuỗi mà phương thức dừng tìm kiếm
    lst1 = ['abc', 'abcd', 'xyx', 'mno']
    lst2 = ['abc', 'xyzabc', 'mno']
    lst3 = ["abc", "abc"]
    
    def check_list(lst):
        lst = list(set(lst))    #if you want to avoid redundant strings.
        lst.sort(key = lambda x:len(x))
    
        n = len(lst)
        for i in xrange(n):
            for j in xrange(i+1, n):
                if lst[j].startswith(lst[i]):
                    return True
        return False
    
    print check_list(lst1)
    print check_list(lst2)
    print check_list(lst3)
    >>> True
    >>> False
    >>> False #incase you use lst = list(set(lst))
    
    7. Tham số
    import itertools
    
    list1 = ["abc", "xyz", "abc123"]
    products = itertools.product(list1, list1)
    is_substringy = any(x.startswith(y) for x, y in products if x != y)
    
    2 cũng là tùy chọn.

Lưu ý rằng phương pháp

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 nhạy cảm trường hợp. Nói cách khác, nó sẽ tìm kiếm trường hợp nhạy cảm với trường hợp
lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
7.

Ví dụ về phương thức chuỗi Python StringSwith ()

Hãy cùng lấy một số ví dụ về việc sử dụng phương thức chuỗi

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1.

1) Sử dụng phương thức startSwith () để kiểm tra xem một chuỗi bắt đầu bằng một chuỗi khác

Ví dụ sau đây cho thấy cách sử dụng phương thức chuỗi

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 để kiểm tra xem một chuỗi bắt đầu bằng một chuỗi khác:

s = 'Make it work, make it right, make it fast.' result = s.startswith('Make') print(result)

Code language: Python (python)

Output:

True

Code language: Python (python)

Như đã đề cập trước đó, phương thức

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 tìm kiếm một trường hợp nhạy cảm với chuỗi. Do đó, ví dụ sau trả về
list = ['abc', 'xyzabc', 'mno']
7:

s = 'Make it work, make it right, make it fast.' result = s.startswith('make') print(result)

Code language: Python (python)

Output:

False

Code language: Python (python)

2) Sử dụng phương thức startSwith () với một bộ tu

Ví dụ sau sử dụng phương thức

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 để kiểm tra xem một chuỗi bắt đầu bằng một trong các chuỗi trong một tuple:

list = ['abc', 'xyzabc', 'mno']
0

Output:

list = ['abc', 'xyzabc', 'mno']
1

3) Sử dụng phương thức startSwith () với tham số bắt đầu

Ví dụ sau đây minh họa cách sử dụng phương thức

lst1 = ['abc', 'abcd', 'xyx', 'mno']
lst2 = ['abc', 'xyzabc', 'mno']
lst3 = ["abc", "abc"]

def check_list(lst):
    lst = list(set(lst))    #if you want to avoid redundant strings.
    lst.sort(key = lambda x:len(x))

    n = len(lst)
    for i in xrange(n):
        for j in xrange(i+1, n):
            if lst[j].startswith(lst[i]):
                return True
    return False

print check_list(lst1)
print check_list(lst2)
print check_list(lst3)
>>> True
>>> False
>>> False #incase you use lst = list(set(lst))
1 để kiểm tra xem chuỗi bắt đầu với từ tạo từ chữ thường bắt đầu từ vị trí 14:

list = ['abc', 'xyzabc', 'mno']
2

Output:

True

Code language: Python (python)

Bản tóm tắt

  • Sử dụng phương thức Chuỗi Python
    lst1 = ['abc', 'abcd', 'xyx', 'mno']
    lst2 = ['abc', 'xyzabc', 'mno']
    lst3 = ["abc", "abc"]
    
    def check_list(lst):
        lst = list(set(lst))    #if you want to avoid redundant strings.
        lst.sort(key = lambda x:len(x))
    
        n = len(lst)
        for i in xrange(n):
            for j in xrange(i+1, n):
                if lst[j].startswith(lst[i]):
                    return True
        return False
    
    print check_list(lst1)
    print check_list(lst2)
    print check_list(lst3)
    >>> True
    >>> False
    >>> False #incase you use lst = list(set(lst))
    
    1 để xác định xem một chuỗi bắt đầu bằng một chuỗi khác.

Bạn có thấy hướng dẫn này hữu ích không?