Kiểm tra xem hai chuỗi có chứa các chữ cái giống nhau không python

Viết chương trình Python nhận hai chuỗi. Đếm số lần mỗi chuỗi chứa ba chữ cái giống nhau ở cùng một chỉ mục

Dữ liệu mẫu.
[“Đỏ Đỏ Xanh lục”] -> 1
[“Đỏ Trắng Đỏ Trắng] -> 7
[“Đỏ Trắng

Giải pháp mẫu-1

Mã Python

def test[text1, text2]:
           ctr = 0
           for i in range[len[text1] - 2]:
                       if text1[i:i+3] == text2[i:i+3]:
                                   ctr += 1
           return ctr
text1 ="Red"
text2 ="RedGreen"
print["Original strings:", text1,text2]
print["Check said two strings contain three letters at the same index:"]
print[test[text1, text2]]
text1 ="Red White"
text2 ="Red White"
print["Original strings:", text1,text2]
print["Check said two strings contain three letters at the same index:"]
print[test[text1, text2]]
text1 ="Red White"
text2 ="White Red"
print["Original strings:", text1,text2]
print["Check said two strings contain three letters at the same index:"]
print[test[text1, text2]]

Đầu ra mẫu

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0

Sơ đồ


Trực quan hóa việc thực thi mã Python

Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên

Kiểm tra xem một chuỗi có chứa chuỗi con hay không là một trong những nhiệm 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 hay 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 là sử dụng toán tử "in", đượ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

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ử "in". Toán tử này trả về true nếu chuỗi chứa ký tự, ngược lại trả về false

đầu ra

Toán tử "in" trong Python nhận hai đối số, một ở bên trái và một ở bên phải và trả về True nếu chuỗi đối số bên trái được chứa trong chuỗi đối số bên phải

Tìm hiểu thêm về toán tử "in"


Ghi chú. Toán tử "in" phân biệt chữ hoa chữ thường i. e, nó sẽ xử lý các ký tự Chữ hoa và Chữ thường khác nhau

hàm __chứa__[]

Lớp Chuỗi trong Python có phương thức __contains__[] mà chúng ta có thể sử dụng để kiểm tra xem nó có chứa chuỗi khác hay không. Khi chúng ta sử dụng toán tử "in" trong Python, bên trong nó gọi hàm __contains__[]. Phương thức __contains__ xác định cách các thể hiện của lớp hoạt động khi chúng xuất hiện ở phía bên phải của toán tử in và không phải trong toán tử. Chúng ta cũng có thể sử dụng chức năng này trực tiếp, nhưng không. Các phương thức bắt đầu bằng dấu gạch dưới được coi là riêng tư về mặt ngữ nghĩa, tuy nhiên, bạn nên sử dụng toán tử in vì mục đích dễ đọc

Sử dụng str của Python. phương thức tìm[]

Một phương pháp khác bạn có thể sử dụng là chuỗi. phương thức tìm[]. Phương thức find[] đánh giá xem chuỗi có chứa chuỗi con không. Nếu đúng như vậy, phương thức find[] trả về chỉ mục bắt đầu của một chuỗi con trong chuỗi nếu không nó sẽ trả về -1

đầu ra

Tìm hiểu thêm về phương thức find[]


Sử dụng str. phương thức find[] là cách ít Pythonic hơn, 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

Sử dụng biểu thức chính quy 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 gọi là re, có thể được sử dụng để làm việc với Biểu thức chính quy. 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 đã chỉ định hay không

thí dụ

đầu ra

Sử dụng str. phương thức đếm[]

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 đếm[] của Python. Nếu không tìm thấy chuỗi con trong một chuỗi, hàm trả về 0

từ chuỗi nhập ascii_letters, các chữ số def so sánh_chữ và số [thứ nhất, thứ hai]. cho nhân vật đầu tiên. nếu ký tự trong ascii_letters + chữ số và ký tự không ở thứ hai. trả về Sai trả về Đúng str1 = 'ABCD' str2 = 'ACDB' print[so_so_pha_số[str1, str2]] str1 = 'A45BCD' str2 = 'ACD59894B' print[so_cả_chữ-số[str1, str2]] str1 = 'A45BCD' str2 = '

Giải pháp khái quát hóa cho bất kỳ chuỗi nào [không chỉ một chuỗi] và bất kỳ tập hợp nào [bất kỳ đối tượng nào có thể kiểm tra tư cách thành viên bằng toán tử

[c in str for c in set]
0, không chỉ một trong các ký tự]

def containsAny[str, set]:
    """ Check whether sequence str contains ANY of the items in set. """
    return 1 in [c in str for c in set]

def containsAll[str, set]:
    """ Check whether sequence str contains ALL of the items in set. """
    return 0 not in [c in str for c in set]

Mặc dù các phương thức chuỗi

[c in str for c in set]
1 và
[c in str for c in set]
2 có thể kiểm tra sự xuất hiện của chuỗi con, nhưng không có chức năng làm sẵn nào để kiểm tra sự xuất hiện trong một chuỗi gồm một tập hợp các ký tự

Trong khi làm việc với một điều kiện để kiểm tra xem một chuỗi có chứa các ký tự đặc biệt được sử dụng trong hàm thư viện chuẩn

[c in str for c in set]
3 hay không, tôi đã nghĩ ra đoạn mã trên [với sự trợ giúp từ kênh IRC của OpenProjects
[c in str for c in set]
4]. Được viết theo cách này, nó thực sự tương thích với suy nghĩ của con người, mặc dù bạn có thể không nghĩ ra mã như vậy bằng trực giác. Đó thường là trường hợp với việc hiểu danh sách

Đoạn mã sau tạo một danh sách các giá trị

[c in str for c in set]
5/
[c in str for c in set]
6, một giá trị cho mỗi mục trong tập hợp

[c in str for c in set]

Sau đó, mã này kiểm tra xem có ít nhất một giá trị thực trong danh sách đó không

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
1

Tương tự, điều này kiểm tra xem không có giá trị sai nào trong danh sách

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
2

Các ví dụ về cách sử dụng được truyền tốt nhất dưới dạng các bài kiểm tra đơn vị để được thêm vào tệp nguồn

[c in str for c in set]
7 của mô-đun này, với thành ngữ thông thường để đảm bảo rằng các bài kiểm tra thực thi nếu mô-đun chạy dưới dạng tập lệnh chính

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
4

Tất nhiên, trong khi các thành ngữ trước rất gọn gàng, vẫn có những lựa chọn thay thế [không phải lúc nào cũng vậy sao?]. Dưới đây là những lựa chọn thay thế cơ bản nhất — và do đó, theo một nghĩa nào đó, là những lựa chọn thay thế Pythonic nhất

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
5

Dưới đây là một số lựa chọn thay thế đảm bảo vòng lặp tối thiểu [trả lại sớm nhất có thể]. Đây là những điều ngắn gọn nhất và do đó, theo một nghĩa nào đó, mạnh mẽ nhất

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
6

Dưới đây là một số biến thể thậm chí còn mỏng hơn của biến thể thứ hai dựa trên một phương thức đặc biệt mà các đối tượng chuỗi chỉ cung cấp trong Python 2. 2 trở lên

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
7

Và đây là một biến thể phức tạp dựa trên chức năng cũng có sẵn trong 2. 0

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
8

May mắn thay, cách tiếp cận khá phức tạp này thiếu một biến thể rõ ràng ngay lập tức có thể áp dụng để triển khai

[c in str for c in set]
8. Tuy nhiên, một sơ đồ phức tạp cuối cùng, dựa trên khả năng xóa tất cả các ký tự trong một tập hợp của
[c in str for c in set]
9, sẽ áp dụng cho cả hai chức năng

[c in str for c in set]
1

Thủ thuật này ít nhất cũng có chiều sâu—nó dựa vào việc

Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
10 là dãy con của
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
11 được tạo thành từ các ký tự không có trong
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
12. Nếu dãy con đó có cùng độ dài với
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
11, không có ký tự nào bị xóa bởi
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
14, vì vậy không có ký tự nào của
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
11 nằm trong
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
12. Ngược lại, nếu dãy con đó có độ dài bằng 0 thì tất cả các ký tự đã bị loại bỏ, do đó tất cả các ký tự của
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
11 nằm trong
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
12. Phương thức
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
19 của các đối tượng chuỗi tiếp tục xuất hiện một cách tự nhiên khi người ta muốn coi các chuỗi là tập hợp các ký tự, một phần vì nó quá nhanh và một phần vì nó rất tiện dụng và linh hoạt. Xem Công thức 3. 8 cho một ứng dụng tương tự khác

Một quan sát cuối cùng là những cách tiếp cận nhiệm vụ khác nhau này có mức độ tổng quát rất khác nhau. Ở một thái cực, cách tiếp cận sớm nhất, chỉ dựa vào

[c in str for c in set]
0 [để lặp trên
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
12 và để trở thành thành viên của
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
11] là tổng quát nhất; . Ở một thái cực khác, cách tiếp cận cuối cùng, dựa vào phương pháp
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
19, chỉ hoạt động khi cả
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
12 và
Original strings: Red RedGreen
Check said two strings contain three letters at the same index:
1
Original strings: Red White Red White
Check said two strings contain three letters at the same index:
7
Original strings: Red White White Red
Check said two strings contain three letters at the same index:
0
11 đều là chuỗi hoặc bắt chước chức năng của đối tượng chuỗi

công thức 3. số 8;

Làm thế nào bạn có thể xác nhận rằng 2 chuỗi có cùng một Python nhận dạng?

Làm cách nào để bạn xác nhận rằng 2 chuỗi có cùng một danh tính? . Đây là những gì chúng ta đang đề cập đến khi chúng ta nói về danh tính. Đừng nhầm lẫn với ==, cái sau chỉ kiểm tra sự bình đẳng. The is operator returns True if 2 names point to the same location in memory. This is what we're referring to when we talk about identity. Don't confuse is with ==, the latter which only tests equality.

Bạn có thể sử dụng == để so sánh các chuỗi trong Python không?

"==" là một phương pháp so sánh chuỗi python để kiểm tra xem cả hai giá trị của toán hạng có bằng nhau hay không . Toán tử này là phương pháp được sử dụng phổ biến nhất để kiểm tra đẳng thức trong python.

Chủ Đề