Hướng dẫn find common string in list python - tìm chuỗi chung trong danh sách python

Tôi có một danh sách python các tên chuỗi nơi tôi muốn xóa một chuỗi con chung khỏi tất cả các tên.

Và sau khi đọc câu trả lời tương tự này, tôi gần như có thể đạt được kết quả mong muốn bằng cách sử dụng

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
7.

Nhưng chỉ khi tất cả các mục có một chuỗi con chung:all items have a common substring:

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges

common substring = "myKey_"

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges

Tuy nhiên, tôi có một danh sách hơi ồn ào chứa một vài mục phân tán không phù hợp với cùng một quy ước đặt tên.

Tôi muốn loại bỏ chuỗi con "phổ biến nhất" khỏi đa số:

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas

Tôi cần một cách để phù hợp với bộ nền "myKey_" để tôi có thể xóa nó khỏi tất cả các tên.

Nhưng khi tôi sử dụng

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
7, mục "foo" khiến "trận đấu dài nhất" bằng Blank "".

Tôi nghĩ rằng cách duy nhất để giải quyết điều này là tìm "chuỗi con phổ biến nhất". Nhưng làm thế nào điều đó có thể được hoàn thành?


Mã ví dụ cơ bản:

from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_

Chúng ta có thể sử dụng toán tử Python

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
9 để kiểm tra xem một chuỗi có có trong danh sách hay không. Ngoài ra còn có một toán tử
from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
0 để kiểm tra xem một chuỗi không có trong danh sách.

l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']

# string in the list
if 'A' in l1:
    print('A is present in the list')

# string not in the list
if 'X' not in l1:
    print('X is not present in the list')

Output:

A is present in the list
X is not present in the list

Đọc được đề xuất: Python F-Strings, hãy xem xét một ví dụ khác, nơi chúng tôi sẽ yêu cầu người dùng nhập chuỗi để kiểm tra danh sách.

l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']
s = input('Please enter a character A-Z:\n')

if s in l1:
    print(f'{s} is present in the list')
else:
    print(f'{s} is not present in the list')

Output:

Please enter a character A-Z:
A
A is present in the list

Python Tìm chuỗi trong danh sách bằng cách sử dụng Count ()

Chúng ta cũng có thể sử dụng hàm Count () để có được số lần xuất hiện của một chuỗi trong danh sách. Nếu đầu ra của nó là 0, thì điều đó có nghĩa là chuỗi không có trong danh sách.

l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']
s = 'A'

count = l1.count(s)
if count > 0:
    print(f'{s} is present in the list for {count} times.')

Tìm tất cả các chỉ mục của một chuỗi trong danh sách

Không có chức năng tích hợp để có được danh sách tất cả các chỉ mục của một chuỗi trong danh sách. Dưới đây là một chương trình đơn giản để có được danh sách tất cả các chỉ mục trong đó chuỗi có trong danh sách.

l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']
s = 'A'
matched_indexes = []
i = 0
length = len(l1)

while i < length:
    if s == l1[i]:
        matched_indexes.append(i)
    i += 1

print(f'{s} is present in {l1} at indexes {matched_indexes}')

Đầu ra:

from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
1

Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.

Tìm các ký tự chung giữa hai chuỗi trong Python #

Để tìm các ký tự chung giữa hai chuỗi:

  1. Sử dụng lớp
    from difflib import SequenceMatcher
    
    names = ["myKey_apples",
    "myKey_appleses",
    "myKey_oranges",
    #"foo",
    "myKey_Banannas"]
    
    string2 = names[0]
    for i in range(1, len(names)):
        string1 = string2
        string2 = names[i]
        match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
    
    print(string1[match.a: match.a + match.size]) # -> myKey_
    
    2 để chuyển đổi chuỗi đầu tiên thành
    from difflib import SequenceMatcher
    
    names = ["myKey_apples",
    "myKey_appleses",
    "myKey_oranges",
    #"foo",
    "myKey_Banannas"]
    
    string2 = names[0]
    for i in range(1, len(names)):
        string1 = string2
        string2 = names[i]
        match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
    
    print(string1[match.a: match.a + match.size]) # -> myKey_
    
    3.
  2. Sử dụng phương thức
    from difflib import SequenceMatcher
    
    names = ["myKey_apples",
    "myKey_appleses",
    "myKey_oranges",
    #"foo",
    "myKey_Banannas"]
    
    string2 = names[0]
    for i in range(1, len(names)):
        string1 = string2
        string2 = names[i]
        match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
    
    print(string1[match.a: match.a + match.size]) # -> myKey_
    
    4 để có được các ký tự chung.
  3. Sử dụng phương thức
    from difflib import SequenceMatcher
    
    names = ["myKey_apples",
    "myKey_appleses",
    "myKey_oranges",
    #"foo",
    "myKey_Banannas"]
    
    string2 = names[0]
    for i in range(1, len(names)):
        string1 = string2
        string2 = names[i]
        match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
    
    print(string1[match.a: match.a + match.size]) # -> myKey_
    
    5 để tham gia
    from difflib import SequenceMatcher
    
    names = ["myKey_apples",
    "myKey_appleses",
    "myKey_oranges",
    #"foo",
    "myKey_Banannas"]
    
    string2 = names[0]
    for i in range(1, len(names)):
        string1 = string2
        string2 = names[i]
        match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
    
    print(string1[match.a: match.a + match.size]) # -> myKey_
    
    3 vào một chuỗi.

Copied!

string1 = 'abcd' string2 = 'abzx' common_characters = ''.join( set(string1).intersection(string2) ) print(common_characters) # 👉️ 'ab'

Lớp Set () có một đối số tùy chọn có thể lặp lại và trả về một đối tượng

from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
3 mới với các phần tử được lấy từ có thể điều chỉnh được.

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
0

Đặt đối tượng lưu trữ một bộ sưu tập không có thứ tự các yếu tố duy nhất và thực hiện phương thức ____24.

Phương thức giao nhau trả về một

from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
3 mới với các phần tử phổ biến cho cả hai đối tượng
from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
3.

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
1

Bước cuối cùng là sử dụng phương thức

from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
5 để tham gia đối tượng
from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
3 vào một chuỗi.

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
2

Phương thức str.join lấy một điều đáng tin cậy như một đối số và trả về một chuỗi là sự kết hợp của các chuỗi trong điều kiện có thể sử dụng được.

Chuỗi phương thức được gọi là bật được sử dụng làm phân tách giữa các phần tử.

Bạn có thể sử dụng chức năng

l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']

# string in the list
if 'A' in l1:
    print('A is present in the list')

# string not in the list
if 'X' not in l1:
    print('X is not present in the list')
3 nếu bạn cần có được số lượng các phần tử phổ biến giữa hai chuỗi.

Ngoài ra, bạn có thể sử dụng một danh sách hiểu.

Tìm các ký tự chung giữa hai chuỗi bằng cách sử dụng danh sách hiểu #

Để tìm các ký tự chung giữa hai chuỗi:

  1. Sử dụng danh sách hiểu để lặp qua chuỗi đầu tiên.
  2. Kiểm tra xem mỗi ký tự có mặt trong chuỗi thứ hai.
  3. Sử dụng phương thức
    from difflib import SequenceMatcher
    
    names = ["myKey_apples",
    "myKey_appleses",
    "myKey_oranges",
    #"foo",
    "myKey_Banannas"]
    
    string2 = names[0]
    for i in range(1, len(names)):
        string1 = string2
        string2 = names[i]
        match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
    
    print(string1[match.a: match.a + match.size]) # -> myKey_
    
    5 để tham gia danh sách vào một chuỗi.

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
3

Chúng tôi đã sử dụng một danh sách hiểu để lặp qua chuỗi đầu tiên.

Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.

Trên mỗi lần lặp, chúng tôi kiểm tra xem ký tự hiện tại có mặt trong chuỗi khác không và trả về kết quả.

Các thử nghiệm trong nhà điều hành để thành viên. Ví dụ,

l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']

# string in the list
if 'A' in l1:
    print('A is present in the list')

# string not in the list
if 'X' not in l1:
    print('X is not present in the list')
5 đánh giá thành
l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']

# string in the list
if 'A' in l1:
    print('A is present in the list')

# string not in the list
if 'X' not in l1:
    print('X is not present in the list')
6 nếu
l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']

# string in the list
if 'A' in l1:
    print('A is present in the list')

# string not in the list
if 'X' not in l1:
    print('X is not present in the list')
7 là thành viên của
l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']

# string in the list
if 'A' in l1:
    print('A is present in the list')

# string not in the list
if 'X' not in l1:
    print('X is not present in the list')
8, nếu không nó sẽ đánh giá thành
l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C']

# string in the list
if 'A' in l1:
    print('A is present in the list')

# string not in the list
if 'X' not in l1:
    print('X is not present in the list')
9.

Nếu bạn cần có được một danh sách các ký tự chung giữa hai chuỗi, hãy xóa cuộc gọi đến phương thức

from difflib import SequenceMatcher

names = ["myKey_apples",
"myKey_appleses",
"myKey_oranges",
#"foo",
"myKey_Banannas"]

string2 = names[0]
for i in range(1, len(names)):
    string1 = string2
    string2 = names[i]
    match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))

print(string1[match.a: match.a + match.size]) # -> myKey_
5.

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
4

Ngoài ra, bạn có thể sử dụng vòng lặp

A is present in the list
X is not present in the list
1 đơn giản.

Tìm các ký tự chung giữa hai chuỗi bằng cách sử dụng vòng lặp cho vòng #

Để tìm các ký tự chung giữa hai chuỗi:

  1. Sử dụng danh sách hiểu để lặp qua chuỗi đầu tiên.
  2. Kiểm tra xem mỗi ký tự có mặt trong chuỗi thứ hai.
  3. Sử dụng phương thức
    from difflib import SequenceMatcher
    
    names = ["myKey_apples",
    "myKey_appleses",
    "myKey_oranges",
    #"foo",
    "myKey_Banannas"]
    
    string2 = names[0]
    for i in range(1, len(names)):
        string1 = string2
        string2 = names[i]
        match = SequenceMatcher(None, string1, string2).find_longest_match(0, len(string1), 0, len(string2))
    
    print(string1[match.a: match.a + match.size]) # -> myKey_
    
    5 để tham gia danh sách vào một chuỗi.

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
5

Chúng tôi đã sử dụng một danh sách hiểu để lặp qua chuỗi đầu tiên.

Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.

Nếu điều kiện được đáp ứng, chúng tôi nối nhân vật vào một danh sách.

Phương thức Danh sách.Append () thêm một mục vào cuối danh sách.

From List:
string 1 = myKey_apples
string 2 = myKey_appleses
string 3 = myKey_oranges
string 4 = foo
string 5 = myKey_Banannas

common substring = ""

To List:
string 1 = apples
string 2 = appleses
string 3 = oranges
string 4 = foo
string 5 = Banannas
6

Phương thức trả về

A is present in the list
X is not present in the list
6 khi nó đột biến danh sách ban đầu.

Cách tiếp cận mà bạn chọn là một vấn đề sở thích cá nhân. Tôi sẽ sử dụng một danh sách hiểu vì tôi thấy chúng khá trực tiếp và dễ đọc.

Làm thế nào để bạn tìm thấy chuỗi chung trong danh sách Python?

Chương trình Python để tìm các ký tự chung trong hai chuỗi..
Nhập hai chuỗi đầu vào và lưu trữ nó trong các biến riêng biệt ..
Chuyển đổi cả hai chuỗi thành các bộ và tìm các chữ cái chung giữa cả hai bộ ..
Lưu trữ các chữ cái chung trong danh sách ..
Sử dụng một vòng lặp để in các chữ cái của danh sách ..

Làm thế nào để tôi tìm thấy yếu tố phổ biến nhất trong danh sách Python?

Tạo một tập hợp của danh sách để các phần tử trùng lặp bị xóa. Sau đó tìm thấy số lần xuất hiện cao nhất của mỗi phần tử trong tập hợp và do đó, chúng tôi tìm thấy tối đa của nó. Then find the highest count of occurrences of each element in the set and thus, we find the maximum out of it.

Làm thế nào để bạn tìm thấy các từ phổ biến trong hai danh sách trong Python?

Làm thế nào để bạn tìm thấy các thuật ngữ phổ biến trong hai danh sách trong Python ?..
Sử dụng một chức năng.Ví dụ 1: Tạo một hàm cho cả hai danh sách ..
Sử dụng hàm set ().Ví dụ 2: Sử dụng hàm set (), chúng ta có thể trả về các phần tử chung của danh sách trong biến thứ ba ..
Tìm các mục phổ biến từ hai danh sách bằng SET ().ngã tư().

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

Python3.Hàm số () được sử dụng để đếm sự xuất hiện của một chuỗi cụ thể trong danh sách.Nếu số lượng của một chuỗi là nhiều hơn 0, điều đó có nghĩa là một chuỗi cụ thể tồn tại trong danh sách, thì chuỗi đó không tồn tại trong danh sách.The count() function is used to count the occurrence of a particular string in the list. If the count of a string is more than 0, it means that a particular string exists in the list, else that string doesn't exist in the list.