Một trong những hoạt động phổ biến nhất mà các lập trình viên sử dụng trên chuỗi là kiểm tra xem một chuỗi có chứa một số chuỗi khác không
Ví dụ: nếu bạn đến với Python từ Java, bạn có thể đã sử dụng phương thức chứa để kiểm tra xem một số chuỗi con có tồn tại trong một chuỗi khác không
Trong Python, có hai cách để đạt được điều này
Ngày thứ nhất. Sử dụng toán tử in
Cách dễ nhất là thông qua toán tử in của Python.
Hãy xem ví dụ này
>>> str = "Messi is the best soccer player"
>>> "soccer" in str
True
>>> "football" in str
False
Như bạn có thể thấy, toán tử in trả về True khi chuỗi con tồn tại trong chuỗi
Nếu không, nó trả về false
Phương pháp này rất đơn giản, rõ ràng, dễ đọc và thành ngữ
Thứ hai. Sử dụng phương pháp tìm
Một phương thức khác mà bạn có thể sử dụng là phương thức find của chuỗi
Không giống như toán tử in được ước tính thành giá trị boolean, phương thức find trả về một số nguyên.
Số nguyên này về cơ bản là chỉ số của phần đầu của chuỗi con nếu chuỗi con tồn tại, nếu không thì -1 được trả về
Hãy xem hoạt động của phương thức find .
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
Một điều thú vị về phương pháp này là bạn có thể tùy chọn chỉ định chỉ mục bắt đầu và chỉ mục kết thúc để giới hạn tìm kiếm của mình trong phạm vi
Ví dụ
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
Lưu ý cách -1 được trả về cho “Messi” vì bạn đang giới hạn tìm kiếm của mình trong chuỗi chỉ giữa các chỉ số 5 và 25.
Bảng cheat Python 3 cho người mới bắt đầu
Learn Data Science with
if 'apples' in 'This string has apples': print['Apples in string'] else: print['Apples not in string']
Learn Data Science with
Ngoài
Apples in string
Learn Data Science with
Hôm nay chúng ta sẽ xem xét các tùy chọn khác nhau mà bạn có để kiểm tra xem một chuỗi có chứa chuỗi con hay không. Chúng ta sẽ bắt đầu bằng cách khám phá việc sử dụng các câu lệnh
6, tiếp theo là sử dụng hàmApples in string
Learn Data Science with
8. Cuối cùng, cũng có một phần về cách sử dụng biểu thức chính quy [regex] vớiApples in string
Learn Data Science with
9 để tìm kiếm chuỗiApples in string
Learn Data Science with
lựa chọn 1. nếu. Trong
Ví dụ trên đã minh họa một cách nhanh chóng để tìm một chuỗi con trong một chuỗi khác bằng cách sử dụng câu lệnh
6. Câu lệnh sẽ trả vềApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
01 nếu chuỗi chứa những gì chúng tôi đang tìm kiếm và >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
02 nếu không. Xem bên dưới để biết phần mở rộng của ví dụ được sử dụng trước đây>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
0Ngoài
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
3Kết quả hiển thị rằng câu lệnh
6 của chúng tôi đang tìm kiếmApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
04 chỉ trả về >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
01 cho mục đầu tiên trong >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
06, điều này đúngĐiều đáng nói là các câu lệnh
6 phân biệt chữ hoa chữ thường. DòngApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
08 sẽ không phát hiện ra >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
09. Một cách để sửa lỗi này là sử dụng phương thức >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
30, phương thức này chuyển đổi tất cả các ký tự chuỗi thành chữ thườngChúng ta có thể sử dụng phương pháp
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
30 với sự thay đổi bên dưới>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
3Ngoài
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
4Ngoài ra, chúng ta có thể sử dụng hàm
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
32 để tìm kiếm >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
33 thay thếCách tiếp cận
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
34 có hiệu suất nhanh nhất trong hầu hết các trường hợp. Nó cũng có khả năng đọc tuyệt vời, giúp các nhà phát triển khác dễ dàng hiểu tập lệnh làm gìTrong số ba tùy chọn được liệt kê trong bài viết này, sử dụng
6 thường là cách tiếp cận tốt nhất để xem liệu một chuỗi có chứa chuỗi con hay không. Hãy nhớ rằng giải pháp đơn giản nhất thường là giải pháp tốt nhấtApples in string
Learn Data Science with
Lựa chọn 2. tìm thấy[]
Một tùy chọn khác mà bạn có để tìm kiếm một chuỗi là sử dụng phương thức
8. Nếu đối số chúng tôi cung cấpApples in string
Learn Data Science with
8 tồn tại trong một chuỗi, thì hàm sẽ trả về chỉ mục vị trí bắt đầu của chuỗi con mà chúng tôi đang tìm kiếm. Nếu không, hàm sẽ trả về -1. Hình ảnh bên dưới cho thấy cách các ký tự chuỗi được gán chỉ mụcApples in string
Learn Data Science with
Learn Data Science with
8 cho ví dụ đầu tiên của6 như sauApples in string
Learn Data Science with
3Apples in string
Learn Data Science with
Ngoài
4Apples in string
Learn Data Science with
Đối với mục danh sách đầu tiên,
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
04 bắt đầu ở chỉ mục 16, vì vậy, >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
31 trả về 16. >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
04 không có trong chuỗi cho hai mục còn lại, vì vậy, >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
31 trả về -1Hàm
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
34 có thể được sử dụng tương tự và cũng sẽ trả về chỉ số bắt đầu của đối số của nó. Nhược điểm của việc sử dụng >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
34 là nó sẽ ném ra >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
36 nếu Python không thể tìm thấy đối số. Các hàm 8 vàApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
34 cũng phân biệt chữ hoa chữ thườngTùy chọn 3. Tìm kiếm chính quy[]
Regex là viết tắt của biểu thức chính quy, giống như ngôn ngữ lập trình của chính nó. Thông qua
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
39, tìm kiếm biểu thức chính quy, chúng tôi có thể xác định xem một chuỗi có khớp với mẫu không. Hàm 9 tạo đối tượngApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
41 nếu mẫu phù hợpĐây là một ví dụ
7if 'apples' in 'This string has apples': print['Apples in string'] else: print['Apples not in string']
Learn Data Science with
Ngoài
8if 'apples' in 'This string has apples': print['Apples in string'] else: print['Apples not in string']
Learn Data Science with
Nhìn vào đối tượng
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
41, >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
43 cho chúng ta chỉ số bắt đầu và kết thúc của >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
04. Cắt chuỗi bằng cách sử dụng >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
45 trả về chuỗi con >>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
04. Trường >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
47 hiển thị cho chúng tôi một phần của chuỗi trùng khớp, điều này có thể hữu ích khi tìm kiếm một loạt các chuỗi con có thể đáp ứng các điều kiện tìm kiếmChúng ta có thể truy cập các thuộc tính
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
43 và >>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
47 bằng cách sử dụng các phương thức 30 vàApples in string
Learn Data Science with
31, như sauApples in string
Learn Data Science with
0Apples in string
Learn Data Science with
Ngoài
1Apples in string
Learn Data Science with
Nếu chuỗi con không khớp, chúng tôi nhận giá trị null
32 thay vì nhận đối tượngApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
41. Xem ví dụ bên dưới để biết cách chúng tôi có thể áp dụng regex cho vấn đề 34 mà chúng tôi đang sử dụngApples in string
Learn Data Science with
2Apples in string
Learn Data Science with
Ngoài
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
3Trong trường hợp này, câu lệnh if xác định xem
9 có trả về bất kỳ thứ gì khác ngoàiApples in string
Learn Data Science with
32 hay khôngApples in string
Learn Data Science with
Chúng tôi có thể lập luận rằng regex có thể là quá mức cần thiết cho một chức năng đơn giản như thế này. Nhưng một cái gì đó giống như ví dụ trên là điểm khởi đầu tuyệt vời cho biểu thức chính quy, có nhiều khả năng khác
Chẳng hạn, chúng ta có thể thay đổi đối số đầu tiên của hàm
37 thànhApples in string
Learn Data Science with
38, trong đóApples in string
Learn Data Science with
39 là toán tử logic "HOẶC". Trong ngữ cảnh này,Apples in string
Learn Data Science with
9 sẽ trả về một đối tượng khớp cho bất kỳ chuỗi nào có chuỗi conApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
04 hoặc 42Apples in string
Learn Data Science with
Sau đây minh họa một ví dụ về điều này
4Apples in string
Learn Data Science with
Ngoài
5Apples in string
Learn Data Science with
Bản tóm tắt
Cách dễ nhất và hiệu quả nhất để xem liệu một chuỗi có chứa chuỗi con hay không là sử dụng câu lệnh
6, trả vềApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer"]
18
>>> str.find["Ronaldo"]
-1
>>> str.find["Messi"]
0
01 nếu chuỗi con được phát hiện. Ngoài ra, bằng cách sử dụng hàm 8, có thể lấy chỉ mục mà chuỗi con bắt đầu tại đó hoặc -1 nếu Python không thể tìm thấy chuỗi con. REGEX cũng là một tùy chọn, vớiApples in string
Learn Data Science with
9 tạo đối tượngApples in string
Learn Data Science with
>>> str = "Messi is the best soccer player"
>>> str.find["soccer", 5, 25]
18
>>> str.find["Messi", 5, 25]
-1
41 nếu Python tìm thấy đối số đầu tiên trong đối số thứ haiBắt đầu học miễn phí
Nhận thông tin cập nhật trong hộp thư đến của bạn
Tham gia cùng hơn 7.500 người học khoa học dữ liệu
Bài viết gần đây
Ưu đãi khóa học tốt nhất cho Thứ Sáu Đen và Thứ Hai Điện Tử 2022Hàm sigmoidchấm sản phẩm7 khóa học về trí tuệ nhân tạo [AI] tốt nhất năm 2022Các khóa học Python tốt nhất theo phân tích dữ liệu
Trong số khoảng 3000 dịch vụ, đây là những khóa học Python tốt nhất theo phân tích này
xem bài viếtNhận thông tin cập nhật trong hộp thư đến của bạn
Tham gia cùng hơn 7.500 người học khoa học dữ liệu
Gặp gỡ các tác giả
Nhà khoa học dữ liệu Alfie Grace
Alfie tốt nghiệp Thạc sĩ Kỹ thuật Cơ khí tại Đại học College London. Anh ấy hiện đang làm Nhà khoa học dữ liệu tại Square Enix. Tìm anh ấy trên LinkedIn