Làm cách nào để tìm số lớn thứ hai trong một tập hợp trong python?
Khi chúng ta có nhiều phần tử trong danh sách của mình, ý nghĩ tìm phần tử cao nhất hoặc thấp nhất có thể xuất hiện trong đầu chúng ta và Python đã giúp chúng ta dễ dàng hơn nhiều. Trong bài viết này, chúng ta sẽ tìm hiểu cách chúng ta có thể sử dụng để tìm số lớn thứ hai trong Python từ một danh sách Show
Chúng ta hãy xem cách tiếp cận đầu tiên- Làm cách nào để tìm số lớn thứ hai trong Python? Ví dụ –#program to find the second largest number of list. # declaring the list. list_val = [20, 30, 40, 25, 10] # sorting the list. list_val.sort() #displaying the second last element of the list. print("The second largest element of the list is:", list_val[-2]) Sắp xếp danh sách và sau đó in số cuối cùng thứ haiChương trình sau minh họa cách chúng ta có thể làm điều đó trong Python- Ví dụ - #program to find the second largest number of list # declaring the list list_val = [20, 30, 40, 25, 10] # sorting the list list_val.sort() #displaying the second last element of the list print("The second largest element of the list is:", list_val[-2]) đầu ra
Đã đến lúc chuyển sang phần giải thích-
Phương pháp thứ hai là lấy phần tử lớn thứ hai của danh sách bằng cách loại bỏ phần tử lớn nhất. Hãy để chúng tôi xem làm thế nào chúng ta có thể làm điều đó Loại bỏ phần tử tối đaVí dụ - #program to find the second largest number of list # declaring the list list_val = [20, 30, 40, 25, 10] # new_list is a set of list1 res_list = set(list_val) #removing the maximum element res_list.remove(max(res_list)) #printing the second largest element print(max(res_list)) đầu ra
Giải trình - Hãy cho chúng tôi hiểu những gì chúng tôi đã làm trong chương trình trên-
Trong phương pháp thứ ba, chúng ta sẽ sử dụng vòng lặp for và tìm số lớn thứ hai trong danh sách Ví dụ - # declaring empty list list_val = [] # user provides the number of elements to be added in the list num_list = int(input("Enter number of elements in list: ")) for i in range(1, num_list + 1): element = int(input("Enter the elements: ")) list_val.append(element) # sort the list list_val.sort() # print second largest element print("Second largest element is:", list_val[-2]) đầu ra
Giải trình - Hãy để chúng tôi xem qua những gì chúng tôi đã làm ở đây-
Duyệt qua danh sáchTrong chương trình cuối cùng, chúng ta sẽ duyệt qua danh sách để tìm ra số lớn nhất và sau đó sử dụng các câu lệnh điều kiện để tìm số lớn thứ hai trong danh sách Chương trình sau đây minh họa tương tự- Ví dụ - def calc_largest(arr): second_largest = arr[0] largest_val = arr[0] for i in range(len(arr)): if arr[i] > largest_val: largest_val = arr[i] for i in range(len(arr)): if arr[i] > second_largest and arr[i] != largest_val: second_largest = arr[i] return second_largest print(calc_largest([20, 30, 40, 25, 10])) đầu ra
Giải trình - Hãy cho chúng tôi hiểu những gì chúng tôi đã làm trong chương trình trên-
Chương trình Python 1Nhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên #second largest number in list #function def second_largest(list): list.sort() return list[-2] #input of list li=[] n=int(input("Enter size of list ")) for i in range(0,n): e=int(input("Enter element of list ")) li.append(e) #smallest print("second largest in ",li,"is") print(second_largest(li)) Sao chép Nhập kích thước danh sách 5 Nhập phần tử danh sách 8 Nhập phần tử danh sách 3 Nhập phần tử danh sách 1 Nhập phần tử danh sách 9 Nhập phần tử danh sách 5 lớn thứ hai trong [8, 3, 1, 9, 5] là 8 Để lấy phần tử ở chỉ mục cuối cùng thứ hai, chúng tôi đã sử dụng lập chỉ mục phủ định Cách tiếp cận 2. Bằng cách xóa số tối đa khỏi danh sáchTheo cách tiếp cận này, trước tiên chúng ta sẽ tìm phần tử lớn nhất trong danh sách bằng cách sử dụng hàm max() tích hợp. Sau khi nhận được số lớn nhất, chúng tôi sẽ xóa nó khỏi danh sách bằng danh sách. remove() sẽ xóa phần tử khỏi danh sách. Sau đó, gọi lại hàm max() để lấy số tối đa hiện tại trong danh sách. Đây sẽ là phần tử lớn thứ hai trong danh sách thuật toánThực hiện theo thuật toán để hiểu cách tiếp cận tốt hơn Bước 1- Khai báo hàm tìm số lớn thứ hai Bước 2- Sử dụng phương thức max() và lưu trữ giá trị mà nó trả về trong một biến Bước 3- Xóa phần tử lớn nhất khỏi danh sách Bước 4- Gọi lại hàm max() và lưu phần tử lớn nhất vào biến Bước 5- Trả về biến, đây sẽ là phần tử lớn thứ hai Bước 6- Khai báo danh sách và lấy giá trị đầu vào hoặc khởi tạo Bước 7- Gọi hàm Bước 8- In giá trị trả về của hàm Chương trình PythonNhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên #program to find the second largest number of list # declaring the list list_val = [20, 30, 40, 25, 10] # sorting the list list_val.sort() #displaying the second last element of the list print("The second largest element of the list is:", list_val[-2])0 Sao chép Nhập kích thước danh sách 4 Nhập phần tử danh sách 9 Nhập phần tử danh sách 3 Nhập phần tử danh sách 6 Nhập phần tử danh sách 1 lớn thứ hai trong [9, 3, 6, 1] là 6 Cách tiếp cận 3. Cách tiếp cận vũ phuTrong cách tiếp cận này, chúng tôi sẽ làm theo cách tiếp cận Brute-force. Đây là một thuật toán tìm kiếm toàn diện trong đó tất cả các giải pháp thử nghiệm có thể được kiểm tra để có được giải pháp tối ưu thuật toánThực hiện theo thuật toán để hiểu cách tiếp cận tốt hơn Bước 1- Xác định hàm tìm số lớn thứ hai trong danh sách Bước 2- Khai báo biến và lưu giá trị lớn nhất, nhỏ nhất giữa phần tử thứ nhất và phần tử thứ hai trong danh sách Bước 3- Tìm độ dài của danh sách bằng len() và lưu trữ trong n Bước 4- Chạy một vòng lặp từ 2 đến n Bước 5- Kiểm tra xem phần tử danh sách có lớn hơn mức tối đa hay không, nếu đúng thì cập nhật tối đa thứ hai thành tối đa và đặt phần tử danh sách là tối đa Bước 6- Mặt khác, nếu phần tử danh sách lớn hơn số tối đa thứ hai thì hãy cập nhật phần tử danh sách thành số tối đa thứ hai Bước 7- Trả về phần tử tối đa thứ hai Bước 8- Khai báo danh sách và lấy giá trị đầu vào hoặc giá trị khởi tạo Bước 9- Gọi hàm Bước 10- In giá trị trả về của hàm Chương trình PythonNhìn vào chương trình để hiểu việc thực hiện phương pháp nêu trên #program to find the second largest number of list # declaring the list list_val = [20, 30, 40, 25, 10] # sorting the list list_val.sort() #displaying the second last element of the list print("The second largest element of the list is:", list_val[-2])1 Sao chép Nhập kích thước danh sách 7 Nhập phần tử danh sách 3 Nhập phần tử danh sách 9 Nhập phần tử danh sách 12 Nhập phần tử danh sách 45 Nhập phần tử danh sách 2 Nhập phần tử danh sách 3 Nhập phần tử danh sách 0 lớn thứ hai trong [3, 9, 12, Phần kết luậnTrong hướng dẫn này, chúng ta đã thảo luận các cách tiếp cận khác nhau để tìm phần tử lớn thứ hai trong danh sách. Chúng tôi đã thảo luận về ba cách tiếp cận - sử dụng các phần tử danh sách được sắp xếp để in phần tử cuối cùng thứ hai, bằng cách loại bỏ phần tử lớn nhất khỏi danh sách và sau đó tìm phần tử lớn nhất trong danh sách và cuối cùng, chúng tôi đã sử dụng phương pháp Brute-force để lấy phần tử lớn thứ hai |