Python tìm dòng chứa chuỗi
Ở đây chúng tôi đã sử dụng phương thức readlines() để đọc dòng tệp văn bản một cách khôn ngoan. Chức năng liệt kê đã được sử dụng để ánh xạ các dòng tới số dòng tương ứng của chúng Show
Tìm nhiều lần lặp lại của cùng một chuỗi trong một tệp văn bảnXem xét cùng một tệp văn bản được đề cập ở trên nếu chúng tôi muốn tìm tất cả các lần lặp lại của chuỗi (từ khóa) “Codespeedy” từ tệp văn bản, chúng tôi có thể thực hiện các thay đổi nhỏ ở trên hàm để lấy số dòng của các dòng chứa từ khóa/ def word_search(key, filename): with open(filename) as file: # opening the file using with to ensure it closes after the block of code is executed lines = file.readlines() # reading the lines of the files in order for number, line in enumerate(lines, 1): # using enumerate to map each line of the file to it's line_number if key in line: # searching for the keyword in file print(f'{key} is in the line {number}') # returning the line number if the keyword keyword = input("Enter the string/keyword you wish to search:") # user input of the keyword word_search(keyword,'Example.txt') đầu ra Enter the string/keyword you wish to search: Codespeedy Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 Tìm một số từ khóa/chuỗi khác nhau trong một tệp văn bảnXem xét cùng một tệp văn bản được đề cập ở trên nếu chúng tôi muốn tìm một số từ khóa/chuỗi trong tệp văn bản, chúng tôi có thể sử dụng cùng chức năng được đề cập ở trên để lấy số dòng của các dòng có chứa các từ khóa/chuỗi này def word_search(key, filename): with open(filename) as file: # opening the file using with to ensure it closes after the block of code is executed lines = file.readlines() # reading the lines of the files in order for number, line in enumerate(lines, 1): # using enumerate to map each line of the file to it's line_number if key in line: # searching for the keyword in file print(f'{key} is in the line {number}') # returning the line number strings = input("Enter all the strings use to wish to search separated by space:\n") string_list = list(strings.split()) for item in string_list: word_search(item,'Example.txt') đầu ra Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 3 Trong chương trình này, phương thức split() đã được sử dụng để phân tách chuỗi đầu vào được phân tách bằng dấu cách thành các từ riêng lẻ Nếu bạn là người mới lập trình hoặc đến từ một ngôn ngữ lập trình không phải Python, bạn có thể đang tìm kiếm cách tốt nhất để kiểm tra xem một chuỗi có chứa một chuỗi khác hay không trong Python Việc xác định các chuỗi con như vậy sẽ hữu ích khi bạn đang làm việc với nội dung văn bản từ một tệp hoặc sau khi bạn nhận được đầu vào của người dùng. Bạn có thể muốn thực hiện các hành động khác nhau trong chương trình của mình tùy thuộc vào việc có chuỗi con hay không Trong hướng dẫn này, bạn sẽ tập trung vào cách Pythonic nhất để giải quyết tác vụ này, sử dụng toán tử thành viên 1. Ngoài ra, bạn sẽ tìm hiểu cách xác định các phương thức chuỗi phù hợp cho các trường hợp sử dụng có liên quan nhưng khác nhauCuối cùng, bạn cũng sẽ học cách tìm chuỗi con trong cột gấu trúc. Điều này hữu ích nếu bạn cần tìm kiếm dữ liệu từ tệp CSV. Bạn có thể sử dụng phương pháp mà bạn sẽ học trong phần tiếp theo, nhưng nếu bạn đang làm việc với dữ liệu dạng bảng, thì tốt nhất là tải dữ liệu vào DataFrame của gấu trúc và tìm kiếm các chuỗi con trong pandas Tải xuống miễn phí. Nhấp vào đây để tải xuống mã mẫu mà bạn sẽ sử dụng để kiểm tra xem một chuỗi có chứa chuỗi con không Cách xác nhận rằng một chuỗi Python chứa một chuỗi khácNếu bạn cần kiểm tra xem một chuỗi có chứa chuỗi con hay không, hãy sử dụng toán tử thành viên của Python 1. Trong Python, đây là cách được đề xuất để xác nhận sự tồn tại của chuỗi con trong chuỗi>>>
Toán tử thành viên 1 cung cấp cho bạn một cách nhanh chóng và dễ đọc để kiểm tra xem một chuỗi con có tồn tại trong một chuỗi hay không. Bạn có thể nhận thấy rằng dòng mã gần giống như tiếng AnhGhi chú. Nếu bạn muốn kiểm tra xem chuỗi con có nằm trong chuỗi hay không thì bạn có thể sử dụng 4>>>
Bởi vì chuỗi con 5 có mặt trong 6, nên toán tử 4 trả về 8Khi bạn sử dụng 1, biểu thức sẽ trả về giá trị Boolean
Bạn có thể sử dụng cú pháp trực quan này trong các câu lệnh có điều kiện để đưa ra quyết định trong mã của mình >>>
Trong đoạn mã này, bạn sử dụng toán tử thành viên để kiểm tra xem 5 có phải là chuỗi con của 6 không. Nếu đúng như vậy, thì bạn sẽ in một tin nhắn đến thiết bị đầu cuối. Mọi mã thụt lề sẽ chỉ thực thi nếu chuỗi Python mà bạn đang kiểm tra chứa chuỗi con mà bạn cung cấpGhi chú. Python coi các chuỗi rỗng luôn là một chuỗi con của bất kỳ chuỗi nào khác, vì vậy việc kiểm tra chuỗi rỗng trong một chuỗi sẽ trả về Enter the string/keyword you wish to search: Codespeedy Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 550 >>> Enter the string/keyword you wish to search: Codespeedy Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 55 Điều này có thể gây ngạc nhiên vì Python coi các chuỗi rỗng là sai, nhưng đó là một trường hợp cạnh hữu ích cần ghi nhớ Toán tử thành viên 1 là người bạn tốt nhất của bạn nếu bạn chỉ cần kiểm tra xem một chuỗi Python có chứa chuỗi con hay khôngTuy nhiên, nếu bạn muốn biết thêm về chuỗi con thì sao? Python đã tìm thấy sự cố nào trong số này? Loại bỏ các quảng cáoTổng quát hóa séc của bạn bằng cách loại bỏ phân biệt chữ hoa chữ thườngChuỗi Python phân biệt chữ hoa chữ thường. Nếu chuỗi con mà bạn cung cấp sử dụng cách viết hoa khác với cùng một từ trong văn bản của bạn, thì Python sẽ không tìm thấy chuỗi đó. Ví dụ: nếu bạn kiểm tra từ viết thường 5 trên phiên bản viết hoa tiêu đề của văn bản gốc, kiểm tra toán tử thành viên sẽ trả về 8>>> def word_search(key, filename): with open(filename) as file: # opening the file using with to ensure it closes after the block of code is executed lines = file.readlines() # reading the lines of the files in order for number, line in enumerate(lines, 1): # using enumerate to map each line of the file to it's line_number if key in line: # searching for the keyword in file print(f'{key} is in the line {number}') # returning the line number strings = input("Enter all the strings use to wish to search separated by space:\n") string_list = list(strings.split()) for item in string_list: word_search(item,'Example.txt')6 Mặc dù thực tế là từ bí mật xuất hiện nhiều lần trong văn bản viết hoa tiêu đề Enter the string/keyword you wish to search: Codespeedy Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 559, nhưng nó không bao giờ xuất hiện ở tất cả các chữ thường. Đó là lý do tại sao kiểm tra mà bạn thực hiện với toán tử thành viên trả về 8. Python không thể tìm thấy chuỗi toàn chữ thường 5 trong văn bản được cung cấpCon người có cách tiếp cận ngôn ngữ khác với máy tính. Đây là lý do tại sao bạn thường muốn bỏ qua cách viết hoa khi kiểm tra xem một chuỗi có chứa chuỗi con hay không trong Python Bạn có thể khái quát hóa việc kiểm tra chuỗi con của mình bằng cách chuyển đổi toàn bộ văn bản đầu vào thành chữ thường >>> Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 30 Chuyển đổi văn bản đầu vào của bạn thành chữ thường là một cách phổ biến để giải thích cho thực tế là con người nghĩ về các từ chỉ khác nhau về cách viết hoa là cùng một từ, trong khi máy tính thì không Ghi chú. Đối với các ví dụ sau, bạn sẽ tiếp tục làm việc với def word_search(key, filename): with open(filename) as file: # opening the file using with to ensure it closes after the block of code is executed lines = file.readlines() # reading the lines of the files in order for number, line in enumerate(lines, 1): # using enumerate to map each line of the file to it's line_number if key in line: # searching for the keyword in file print(f'{key} is in the line {number}') # returning the line number strings = input("Enter all the strings use to wish to search separated by space:\n") string_list = list(strings.split()) for item in string_list: word_search(item,'Example.txt')62, phiên bản chữ thường của văn bản của bạn Nếu bạn làm việc với chuỗi ban đầu ( 6) hoặc chuỗi trong tiêu đề (Enter the string/keyword you wish to search: Codespeedy Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 559), thì bạn sẽ nhận được kết quả khác vì chúng không ở dạng chữ thường. Vui lòng thử điều đó trong khi bạn làm việc với các ví dụ Bây giờ bạn đã chuyển đổi chuỗi thành chữ thường để tránh các vấn đề ngoài ý muốn xuất phát từ phân biệt chữ hoa chữ thường, đã đến lúc đào sâu hơn và tìm hiểu thêm về chuỗi con Tìm hiểu thêm về chuỗi conToán tử thành viên 1 là một cách tuyệt vời để kiểm tra một cách mô tả xem có một chuỗi con trong một chuỗi hay không, nhưng nó không cung cấp cho bạn bất kỳ thông tin nào khác hơn thế. Nó hoàn hảo cho việc kiểm tra có điều kiện—nhưng nếu bạn cần biết thêm về các chuỗi con thì sao?Python cung cấp nhiều phương thức chuỗi bổ sung cho phép bạn kiểm tra xem chuỗi đó chứa bao nhiêu chuỗi con đích, để tìm kiếm các chuỗi con theo các điều kiện phức tạp hoặc để xác định vị trí chỉ mục của chuỗi con trong văn bản của bạn Trong phần này, bạn sẽ đề cập đến một số phương thức chuỗi bổ sung có thể giúp bạn tìm hiểu thêm về chuỗi con Ghi chú. Bạn có thể đã thấy các phương pháp sau được sử dụng để kiểm tra xem một chuỗi có chứa chuỗi con hay không. Điều này là có thể — nhưng chúng không được sử dụng cho mục đích đó Lập trình là một hoạt động sáng tạo và bạn luôn có thể tìm ra những cách khác nhau để hoàn thành cùng một nhiệm vụ. Tuy nhiên, để mã của bạn dễ đọc, tốt nhất bạn nên sử dụng các phương thức như chúng dự định trong ngôn ngữ mà bạn đang làm việc Bằng cách sử dụng 1, bạn đã xác nhận rằng chuỗi chứa chuỗi con. Nhưng bạn không nhận được bất kỳ thông tin nào về vị trí của chuỗi conNếu bạn cần biết chuỗi con xuất hiện ở đâu trong chuỗi của mình, thì bạn có thể sử dụng def word_search(key, filename): with open(filename) as file: # opening the file using with to ensure it closes after the block of code is executed lines = file.readlines() # reading the lines of the files in order for number, line in enumerate(lines, 1): # using enumerate to map each line of the file to it's line_number if key in line: # searching for the keyword in file print(f'{key} is in the line {number}') # returning the line number strings = input("Enter all the strings use to wish to search separated by space:\n") string_list = list(strings.split()) for item in string_list: word_search(item,'Example.txt')67 trên đối tượng chuỗi >>> Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 37 Khi bạn gọi def word_search(key, filename): with open(filename) as file: # opening the file using with to ensure it closes after the block of code is executed lines = file.readlines() # reading the lines of the files in order for number, line in enumerate(lines, 1): # using enumerate to map each line of the file to it's line_number if key in line: # searching for the keyword in file print(f'{key} is in the line {number}') # returning the line number strings = input("Enter all the strings use to wish to search separated by space:\n") string_list = list(strings.split()) for item in string_list: word_search(item,'Example.txt')67 trên chuỗi và chuyển chuỗi con đó làm đối số, bạn sẽ nhận được vị trí chỉ mục của ký tự đầu tiên trong lần xuất hiện đầu tiên của chuỗi con Ghi chú. Nếu Python không thể tìm thấy chuỗi con, thì def word_search(key, filename): with open(filename) as file: # opening the file using with to ensure it closes after the block of code is executed lines = file.readlines() # reading the lines of the files in order for number, line in enumerate(lines, 1): # using enumerate to map each line of the file to it's line_number if key in line: # searching for the keyword in file print(f'{key} is in the line {number}') # returning the line number strings = input("Enter all the strings use to wish to search separated by space:\n") string_list = list(strings.split()) for item in string_list: word_search(item,'Example.txt')67 sẽ đưa ra một ngoại lệ Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 300 Nhưng nếu bạn muốn tìm các lần xuất hiện khác của chuỗi con thì sao? . Do đó, bằng cách chuyển các vị trí chỉ mục cụ thể, bạn có thể bỏ qua các lần xuất hiện của chuỗi con mà bạn đã xác định >>> 2Khi bạn chuyển một chỉ mục bắt đầu vượt qua lần xuất hiện đầu tiên của chuỗi con, thì Python sẽ tìm kiếm bắt đầu từ đó. Trong trường hợp này, bạn nhận được một trận đấu khác và không phải là Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 300 Điều đó có nghĩa là văn bản chứa chuỗi con nhiều hơn một lần. Nhưng nó có thường xuyên ở trong đó không? Bạn có thể sử dụng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 303 để nhanh chóng nhận được câu trả lời của mình bằng cách sử dụng mã Python mô tả và thành ngữ >>> 5Bạn đã sử dụng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 303 trên chuỗi chữ thường và chuyển chuỗi con 5 làm đối số. Python đếm tần suất chuỗi con xuất hiện trong chuỗi và trả về câu trả lời. Văn bản chứa chuỗi con bốn lần. Nhưng những chuỗi con này trông như thế nào?Bạn có thể kiểm tra tất cả các chuỗi con bằng cách tách văn bản của mình ở các đường viền từ mặc định và in các từ vào thiết bị đầu cuối của bạn bằng vòng lặp Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 306 >>> 9Trong ví dụ này, bạn sử dụng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 307 để tách văn bản tại các khoảng trắng thành các chuỗi, mà Python gói thành một danh sách. Sau đó, bạn lặp lại danh sách này và sử dụng 1 trên mỗi chuỗi này để xem liệu nó có chứa chuỗi con 5 hay khôngGhi chú. Thay vì in các chuỗi con, bạn cũng có thể lưu chúng vào một danh sách mới, chẳng hạn bằng cách sử dụng cách hiểu danh sách với biểu thức điều kiện >>> 0Trong trường hợp này, bạn xây dựng một danh sách chỉ từ những từ có chứa chuỗi con, về cơ bản là lọc văn bản Bây giờ bạn có thể kiểm tra tất cả các chuỗi con mà Python xác định, bạn có thể nhận thấy rằng Python không quan tâm liệu có bất kỳ ký tự nào sau chuỗi con 5 hay không. Nó tìm thấy từ cho dù nó được theo sau bởi khoảng trắng hay dấu chấm câu. Nó thậm chí còn tìm thấy những từ như Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 371 Bạn nên biết điều đó, nhưng bạn có thể làm gì nếu muốn đặt các điều kiện chặt chẽ hơn cho việc kiểm tra chuỗi con của mình? Loại bỏ các quảng cáoTìm chuỗi con có điều kiện bằng RegexBạn có thể chỉ muốn đối sánh các lần xuất hiện của chuỗi con theo sau dấu chấm câu hoặc xác định các từ chứa chuỗi con cộng với các chữ cái khác, chẳng hạn như Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 371 Đối với những trường hợp như vậy yêu cầu khớp chuỗi phức tạp hơn, bạn có thể sử dụng biểu thức chính quy hoặc biểu thức chính quy với mô-đun Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 373 của Python Ví dụ: nếu bạn muốn tìm tất cả các từ bắt đầu bằng 5 nhưng sau đó được theo sau bởi ít nhất một chữ cái bổ sung, thì bạn có thể sử dụng ký tự từ biểu thức chính quy (Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 375) theo sau là từ định lượng cộng ( Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 376) >>> 1Hàm Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 377 trả về cả chuỗi con khớp với điều kiện cũng như vị trí chỉ mục bắt đầu và kết thúc của nó—chứ không chỉ là Enter the string/keyword you wish to search: Codespeedy Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 550 Sau đó, bạn có thể truy cập các thuộc tính này thông qua các phương thức trên đối tượng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 379, được ký hiệu là 20>>> 2Những kết quả này mang lại cho bạn rất nhiều sự linh hoạt để tiếp tục làm việc với chuỗi con phù hợp Ví dụ: bạn chỉ có thể tìm kiếm các chuỗi con được theo sau bởi dấu phẩy ( 21) hoặc dấu chấm ( 22)>>> 3Có hai kết quả khớp tiềm năng trong văn bản của bạn, nhưng bạn chỉ khớp kết quả đầu tiên phù hợp với truy vấn của mình. Khi bạn sử dụng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 377, Python lại chỉ tìm thấy kết quả khớp đầu tiên. Điều gì sẽ xảy ra nếu bạn muốn tất cả các đề cập của 5 phù hợp với một điều kiện nhất định?Để tìm tất cả các kết quả phù hợp bằng cách sử dụng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 373, bạn có thể làm việc với 26>>> 4Bằng cách sử dụng 26, bạn có thể tìm thấy tất cả các kết quả khớp của mẫu trong văn bản của mình. Python lưu tất cả các kết quả khớp dưới dạng chuỗi trong danh sách cho bạnKhi bạn sử dụng nhóm chụp, bạn có thể chỉ định phần nào của trận đấu mà bạn muốn giữ lại trong danh sách của mình bằng cách đặt phần đó trong ngoặc đơn >>> 5Bằng cách đặt bí mật trong dấu ngoặc đơn, bạn đã xác định một nhóm chụp duy nhất. Hàm 28 trả về danh sách các chuỗi khớp với nhóm chụp đó, miễn là có chính xác một nhóm chụp trong mẫu. Bằng cách thêm dấu ngoặc đơn xung quanh bí mật, bạn đã loại bỏ được dấu chấm câuGhi chú. Hãy nhớ rằng có bốn lần xuất hiện của chuỗi con 5 trong văn bản của bạn và bằng cách sử dụng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 373, bạn đã lọc ra hai lần xuất hiện cụ thể mà bạn khớp theo các điều kiện đặc biệt Sử dụng 26 với các nhóm đối sánh là một cách hiệu quả để trích xuất các chuỗi con từ văn bản của bạn. Nhưng bạn chỉ nhận được một danh sách các chuỗi, điều đó có nghĩa là bạn đã mất các vị trí chỉ mục mà bạn có quyền truy cập khi sử dụng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 377 Nếu bạn muốn giữ thông tin đó xung quanh, thì Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 373 có thể cung cấp cho bạn tất cả các kết quả phù hợp trong một trình vòng lặp >>> 6Khi bạn sử dụng 54 và chuyển cho nó mẫu tìm kiếm và nội dung văn bản của bạn làm đối số, bạn có thể truy cập từng đối tượng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 379 có chứa chuỗi con, cũng như vị trí chỉ mục bắt đầu và kết thúc của nó Bạn có thể nhận thấy rằng dấu chấm câu xuất hiện trong các kết quả này mặc dù bạn vẫn đang sử dụng nhóm chụp. Đó là bởi vì biểu diễn chuỗi của đối tượng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 379 hiển thị toàn bộ kết quả khớp thay vì chỉ nhóm bắt đầu tiên Nhưng đối tượng Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 379 là một nơi chứa thông tin mạnh mẽ và, giống như bạn đã thấy trước đó, bạn chỉ có thể chọn ra thông tin mà bạn cần >>> 7Bằng cách gọi 58 và chỉ định rằng bạn muốn nhóm chụp đầu tiên, bạn đã chọn từ bí mật không có dấu chấm câu từ mỗi chuỗi con phù hợpBạn có thể đi sâu vào chi tiết hơn với khớp chuỗi con khi bạn sử dụng biểu thức chính quy. Thay vì chỉ kiểm tra xem một chuỗi có chứa một chuỗi khác hay không, bạn có thể tìm kiếm các chuỗi con theo các điều kiện phức tạp Ghi chú. Nếu bạn muốn tìm hiểu thêm về cách sử dụng các nhóm bắt giữ và soạn các mẫu biểu thức chính quy phức tạp hơn, thì bạn có thể tìm hiểu sâu hơn về các biểu thức chính quy trong Python Sử dụng biểu thức chính quy với Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 373 là một cách tiếp cận tốt nếu bạn cần thông tin về các chuỗi con hoặc nếu bạn cần tiếp tục làm việc với chúng sau khi tìm thấy chúng trong văn bản. Nhưng nếu bạn đang làm việc với dữ liệu dạng bảng thì sao? Loại bỏ các quảng cáo Tìm một chuỗi con trong cột DataFrame của gấu trúcNếu bạn làm việc với dữ liệu không đến từ tệp văn bản thuần túy hoặc từ đầu vào của người dùng, mà từ tệp CSV hoặc trang tính Excel, thì bạn có thể sử dụng phương pháp tương tự như đã thảo luận ở trên Tuy nhiên, có một cách tốt hơn để xác định ô nào trong cột chứa chuỗi con. bạn sẽ sử dụng gấu trúc. Trong ví dụ này, bạn sẽ làm việc với tệp CSV chứa tên công ty và khẩu hiệu giả mạo. Bạn có thể download file bên dưới nếu muốn làm việc cùng Tải xuống miễn phí. Nhấp vào đây để tải xuống mã mẫu mà bạn sẽ sử dụng để kiểm tra xem một chuỗi có chứa chuỗi con không Khi bạn đang làm việc với dữ liệu dạng bảng trong Python, tốt nhất bạn nên tải nó vào pandas 90 trước>>> 8Trong khối mã này, bạn đã tải tệp CSV chứa một nghìn hàng dữ liệu công ty giả mạo vào DataFrame của gấu trúc và kiểm tra năm hàng đầu tiên bằng cách sử dụng 91Ghi chú. Bạn sẽ cần tạo một môi trường ảo và cài đặt pandas để làm việc với thư viện Sau khi bạn đã tải dữ liệu vào DataFrame, bạn có thể nhanh chóng truy vấn toàn bộ cột pandas để lọc các mục có chứa chuỗi con >>> 9Bạn có thể sử dụng 92 trên cột gấu trúc và chuyển chuỗi con đó làm đối số để lọc các hàng chứa chuỗi conGhi chú. Toán tử lập chỉ mục ( 93) và toán tử thuộc tính ( 22) cung cấp các cách trực quan để lấy một cột hoặc lát của DataFrameTuy nhiên, nếu bạn đang làm việc với mã sản xuất liên quan đến hiệu suất, pandas khuyên bạn nên sử dụng các phương pháp truy cập dữ liệu được tối ưu hóa để lập chỉ mục và chọn dữ liệu Khi bạn đang làm việc với 92 và bạn cần các tình huống đối sánh phức tạp hơn, bạn cũng có thể sử dụng các biểu thức chính quy. Bạn chỉ cần chuyển một mẫu tìm kiếm tuân thủ regex làm đối số chuỗi con>>> 0Trong đoạn mã này, bạn đã sử dụng cùng một mẫu mà bạn đã sử dụng trước đó để chỉ khớp các từ chứa bí mật nhưng sau đó tiếp tục với một hoặc nhiều ký tự từ ( 96). Chỉ một trong số các công ty trong bộ dữ liệu giả mạo này dường như hoạt động bí mậtBạn có thể viết bất kỳ mẫu biểu thức chính quy phức tạp nào và chuyển nó tới 92 để khắc từ cột gấu trúc của bạn chỉ các hàng mà bạn cần cho phân tích của mìnhPhần kết luậnGiống như một thợ săn kho báu bền bỉ, bạn đã tìm thấy từng 5, bất kể nó được cất giấu kỹ đến đâu. Trong quá trình này, bạn đã học được rằng cách tốt 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ử thành viên 1Bạn cũng đã học cách mô tả sử dụng hai phương thức chuỗi khác, thường bị lạm dụng để kiểm tra các chuỗi con
Sau đó, bạn đã khám phá cách tìm chuỗi con theo các điều kiện nâng cao hơn với các biểu thức chính quy và một vài hàm trong mô-đun Enter all the strings use to wish to search separated by space: Codespeedy developers Codespeedy is in the line 2 Codespeedy is in the line 3 Codespeedy is in the line 5 developers is in the line 373 của Python Cuối cùng, bạn cũng đã học cách sử dụng phương pháp DataFrame 92 để kiểm tra mục nhập nào trong DataFrame của gấu trúc chứa chuỗi conBây giờ bạn đã biết cách chọn cách tiếp cận thành ngữ nhất khi làm việc với các chuỗi con trong Python. Tiếp tục sử dụng phương pháp mô tả nhất cho công việc và bạn sẽ viết mã thú vị để đọc và nhanh chóng để người khác hiểu Tải xuống miễn phí. Nhấp vào đây để tải xuống mã mẫu mà bạn sẽ sử dụng để kiểm tra xem một chuỗi có chứa chuỗi con không Đánh dấu là đã hoàn thành 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Martin Breuss Martin thích tự động hóa, trò đùa ngớ ngẩn và rắn, tất cả đều phù hợp với cộng đồng Python. Anh ấy thích học hỏi và khám phá và cũng sẵn sàng nói về nó. Anh ấy viết và ghi nội dung cho Real Python và CodingNomads » Thông tin thêm về MartinMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren Geir Arne Ian kate Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi |