Cách tìm kiếm một phần tử trong mảng trong python

Trong bài viết này, chúng ta sẽ tìm hiểu về Tìm kiếm tuyến tính và triển khai nó trong Python 3. x. Hoặc sớm hơn

thuật toán

  • Bắt đầu từ phần tử ngoài cùng bên trái của mảng[] đã cho và so sánh từng phần tử x với từng phần tử của mảng[]

    Khi tôi đang xem xét các câu hỏi khác nhau mà một người có thể được hỏi trong một cuộc phỏng vấn viết mã, không thể tránh khỏi việc tôi bắt gặp một câu hỏi liên quan đến tìm kiếm một mảng.

    Tôi đã tiếp cận vấn đề này bằng cách sử dụng vòng lặp for để tìm kiếm phần tử đã cho trong mảng và mã giả được tìm thấy bên dưới

    1. Xác định mảng, A, có chứa một số phần tử
    2. Xác định biến key_element chứa phần tử cần tìm
    3. Xác định hàm, search_element, chấp nhận mảng và key_element làm đầu vào
    4. Tạo một vòng lặp for trong hàm, vòng lặp này sẽ tìm kiếm phần tử được đề cập trong độ dài của mảng
    5. Tạo câu lệnh if trong vòng lặp for. Nếu phần tử khóa được chứa trong mảng, nó sẽ được in
    6. Khi vòng lặp for đã hoàn thành các lần lặp của nó, một thông báo sẽ xuất hiện cho biết quá trình tìm kiếm đã hoàn tất
    7. Khi hàm hoàn tất, hãy gọi hàm, hàm này sẽ chấp nhận đầu vào là mảng, A và phần tử, key_element

    Mã cho thuật toán này có thể được tìm thấy trong ảnh chụp màn hình bên dưới

    Ngoài việc tìm kiếm phần tử trong một mảng, bạn cũng có thể tìm kiếm một phần tử và trả về số chỉ mục của phần tử nếu nó được tìm thấy. Mã giả cho thuật toán sửa đổi này

    1. Xác định mảng, A, có chứa một số phần tử
    2. Xác định biến key_element chứa phần tử cần tìm
    3. Xác định hàm, search_index, chấp nhận mảng và key_element làm đầu vào
    4. Tạo một vòng lặp for trong hàm, vòng lặp này sẽ tìm kiếm phần tử được đề cập trong độ dài của mảng
    5. Tạo câu lệnh if trong vòng lặp for. Nếu phần tử khóa được chứa trong mảng, nó sẽ được in cùng với chỉ mục của phần tử khóa. Hàm cũng sẽ trả về số chỉ mục của từ. Nếu phần tử khóa không có trong mảng, hàm sẽ trả về giá trị -1
    6. Khi chức năng hoàn thành, hãy tạo biến, kết quả, để gọi hàm và sử dụng các biến đầu vào A và key_element
    7. Tạo câu lệnh if. Nếu kết quả là -1 thì một câu lệnh được in ra cho biết từ đó không có trong mảng;

    Mã cho thuật toán này có thể được tìm thấy trong ảnh chụp màn hình bên dưới

    Tóm lại, có khá nhiều cách để giải quyết vấn đề máy tính này và tôi chỉ trình bày hai trong số đó. Khi tôi nghiên cứu thêm về cấu trúc và thuật toán, tôi sẽ đăng những gì tôi đã học được trên nền tảng này

    Thêm nội dung bằng tiếng Anh. io. Đăng ký nhận bản tin miễn phí hàng tuần của chúng tôi. Nhận quyền truy cập độc quyền để viết các cơ hội và lời khuyên trong cộng đồng của chúng tôi Discord

    Trong hướng dẫn này, chúng ta sẽ xem cách kiểm tra xem một danh sách có chứa một phần tử hoặc giá trị trong Python hay không. Chúng tôi sẽ sử dụng một danh sách các chuỗi, chứa một vài con vật

    animals = ['Dog', 'Cat', 'Bird', 'Fish']
    

    Kiểm tra xem danh sách có chứa phần tử với vòng lặp không

    Một phương pháp đơn giản và thô sơ để kiểm tra xem một danh sách có chứa một phần tử đang lặp qua nó hay không và kiểm tra xem mục chúng ta đang tìm có khớp với mục chúng ta đang tìm kiếm không. Hãy sử dụng vòng lặp

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    7 cho việc này

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    

    Mã này sẽ dẫn đến

    Chirp!
    

    Kiểm tra xem Danh sách có chứa phần tử With trong Toán tử không

    Bây giờ, một cách tiếp cận ngắn gọn hơn sẽ là sử dụng toán tử

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    8 có sẵn, nhưng với câu lệnh
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    9 thay vì câu lệnh
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    7. Khi được ghép nối với
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    9, nó trả về
    Chirp!
    
    2 nếu một phần tử có tồn tại trong một chuỗi hay không. Cú pháp của toán tử
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    8 trông như thế này

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    0

    Bằng cách sử dụng toán tử này, chúng ta có thể rút ngắn đoạn mã trước đó thành một câu lệnh duy nhất

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    1

    Đoạn mã này sẽ xuất ra như sau

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    2

    Cách tiếp cận này có hiệu quả tương tự như vòng lặp

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    7, vì toán tử
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    8, được sử dụng như thế này, gọi hàm
    Chirp!
    
    6, vốn dĩ đã lặp qua danh sách - tuy nhiên, nó dễ đọc hơn nhiều

    Kiểm tra xem Danh sách có chứa phần tử không có trong Toán tử

    Ngược lại, chúng ta có thể sử dụng toán tử

    Chirp!
    
    7, ngược logic với toán tử
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    8. Nó trả về
    Chirp!
    
    2 nếu phần tử không có trong một chuỗi

    Hãy viết lại ví dụ mã trước để sử dụng toán tử

    Chirp!
    
    7

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    0

    Chạy mã này sẽ không tạo ra bất kỳ thứ gì, vì

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    01 có trong danh sách của chúng tôi

    Nhưng nếu chúng ta thử với một

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    02

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    3

    Mã này dẫn đến

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    4

    Kiểm tra xem danh sách có chứa phần tử với Lambda không

    Một cách khác để bạn có thể kiểm tra xem một phần tử có tồn tại hay không là lọc ra mọi thứ khác ngoài phần tử đó, giống như sàng lọc cát và kiểm tra xem cuối cùng còn sót lại phần vỏ nào không. Phương thức

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    03 tích hợp chấp nhận hàm lambda và danh sách làm đối số của nó. Chúng ta có thể sử dụng hàm lambda ở đây để kiểm tra chuỗi
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    04 của mình trong danh sách
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    05

    Sau đó, chúng tôi bọc kết quả trong một

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    06 vì phương thức
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    03 trả về một đối tượng
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    08, không phải kết quả. Nếu chúng ta đóng gói đối tượng
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    08 trong một danh sách, nó sẽ chứa các phần tử còn lại sau khi lọc

    Chirp!
    
    2

    Mã này dẫn đến

    Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    0

    Bây giờ, cách tiếp cận này không phải là hiệu quả nhất. Nó khá chậm so với ba cách tiếp cận trước đây mà chúng tôi đã sử dụng. Bản thân phương thức

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    03 tương đương với hàm tạo

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    1

    Hiệu suất bị chậm lại của mã này, trong số những thứ khác, xuất phát từ thực tế là cuối cùng chúng tôi đang chuyển đổi kết quả thành một danh sách, cũng như thực thi một chức năng trên mục trên mỗi lần lặp lại

    Kiểm tra xem Danh sách có chứa phần tử hay không bằng cách sử dụng bất kỳ []

    Một cách tiếp cận tích hợp tuyệt vời khác là sử dụng hàm

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    11, đây chỉ là một hàm trợ giúp kiểm tra xem có bất kỳ [ít nhất 1] trường hợp nào của một phần tử trong danh sách không. Nó trả về
    Chirp!
    
    2 hoặc
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    13 dựa trên sự hiện diện hay thiếu phần tử đó

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    2

    Vì kết quả này là

    Chirp!
    
    2, câu lệnh
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    15 của chúng ta được gọi là

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    2

    Cách tiếp cận này cũng là một cách hiệu quả để kiểm tra sự hiện diện của một phần tử. Nó hiệu quả như ba cái đầu tiên

    Kiểm tra xem Danh sách có chứa phần tử hay không bằng cách sử dụng đếm[]

    Cuối cùng, chúng ta có thể sử dụng hàm

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    16 để kiểm tra xem một phần tử có hay không

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    4

    Hàm này trả về sự xuất hiện của phần tử đã cho trong một chuỗi. Nếu nó lớn hơn 0, chúng tôi có thể yên tâm rằng một mục nhất định có trong danh sách

    Hãy kiểm tra kết quả của hàm

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    16

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    5

    Hàm ________ 116 vốn đã lặp danh sách để kiểm tra số lần xuất hiện và mã này dẫn đến kết quả

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    2

    Sự kết luận

    Trong hướng dẫn này, chúng tôi đã giới thiệu một số cách để kiểm tra xem một phần tử có trong danh sách hay không. Chúng tôi đã sử dụng vòng lặp

    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    7, toán tử
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    8 và
    Chirp!
    
    7, cũng như các phương thức
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    03,
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    11 và
    for animal in animals:
        if animal == 'Bird':
            print['Chirp!']
    
    16

Chủ Đề