Làm cách nào để bạn in giá trị cao thứ hai trong danh sách bằng python?

Danh sách Python là một trong những cấu trúc dữ liệu hữu ích nhất của Python. Nó rất giống với mảng trong Javascript và C++. Tuy nhiên, giống như mảng nhiều chiều, chúng ta cũng có thể tạo danh sách nhiều chiều được gọi là danh sách lồng nhau. Trong hướng dẫn này, chúng ta đã thảo luận về bốn phương pháp tuyệt vời để tìm số lớn thứ hai trong danh sách python

Để làm theo hướng dẫn này, bạn phải cài đặt python trong hệ thống của mình. Bạn cũng nên cập nhật python lên phiên bản mới nhất để chúng tôi có thể sử dụng nhiều tính năng mới nhất của python trong các chương trình của mình. Cài đặt IDE cũng là một lựa chọn tốt vì nó cho phép chúng tôi viết mã nhanh hơn bằng cách cung cấp nhiều tính năng quan trọng. Có rất nhiều IDE có sẵn như mã phòng thu trực quan mã nguồn mở, một công cụ đa nền tảng và cung cấp nhiều tính năng tuyệt vời để viết mã

Tìm giá trị lớn thứ hai của Danh sách Python

Bây giờ, chúng ta hãy bắt đầu hướng dẫn của mình bằng cách xem xét từng phương pháp một

Phương pháp 1

Đây là một phương pháp đơn giản để tìm phần tử lớn thứ hai của danh sách. Trong phương pháp này, trước tiên chúng ta sẽ sắp xếp danh sách python bằng phương thức sort[] hoặc hàm sorted[]. Sau khi sắp xếp danh sách, chúng ta có thể tìm phần tử lớn thứ hai bằng cách chọn phần tử thứ hai. Nhưng trong khi sử dụng phương pháp này, chúng ta cũng cần kiểm tra xem phần tử thứ nhất và phần tử thứ hai của danh sách có bằng nhau không và nếu chúng bằng nhau thì chúng ta cần kiểm tra lại phần tử thứ ba, v.v. Nếu chúng tôi tìm thấy phần tử không bằng nhau, thì chúng tôi sẽ hiển thị số là số lớn thứ hai trong danh sách. Xem đoạn mã sau để minh họa thực tế

# The python list in which we need to find the second largest element
list1 = [1, 3, 5, 1,333, 44, 1000, 23, 1000, 333]
# displaying the list
print[f" [+] Given list : {list1}"]

# Sorting the given list
list1.sort[]
# displaying the sorted list
print[" [+] Sorted List : ",list1]
# accessing the right most element of the list
m = list1[-1]


def check_max[m]:
    if max[list1] == m:
        return True
    else:
        return False

while check_max[m]:
    list1.remove[m]

print[f" [+] The second largest number of the list is {max[list1]}"]

Bạn có thể sao chép đoạn mã trên bằng nút sao chép ở đầu khối và chạy nó bằng python3. Đầu tiên, chúng ta hãy xem những gì đang xảy ra trong đoạn mã trên

ĐỀ XUẤT ĐỌC

  • Cách định dạng thiết bị đầu cuối bằng thư viện phong phú của Python

  • Phân tích chuỗi thời gian trong Python

Trong dòng mã đầu tiên, chúng tôi đã tạo một danh sách python chứa một số số nguyên và danh sách này đã được hiển thị trong bảng điều khiển bằng hàm print[] của python. Ở dòng thứ ba, chúng ta đã sử dụng phương thức sort[] của danh sách python mà không có bất kỳ đối số nào, vì vậy nó sẽ sắp xếp danh sách theo thứ tự tăng dần. Tiếp theo, danh sách đã sắp xếp đã được hiển thị trong console bằng hàm print[]. Cuối cùng, chúng tôi sử dụng phương pháp lập chỉ mục phủ định [-1] của danh sách python để lấy phần tử tối đa [phần tử cuối cùng] của danh sách được sắp xếp

Sau đó, chúng ta sử dụng vòng lặp while của python với hàm sẽ kiểm tra phần tử tiếp theo của danh sách đã sắp xếp, nếu phần tử đó là phần tử max thì nó sẽ bị xóa khỏi danh sách bằng phương thức remove[] của python list. Sau khi loại bỏ phần tử max, phần tử max mới của danh sách python sẽ là phần tử max thứ hai của danh sách. Do đó, chúng ta có thể hiển thị phần tử max của danh sách bằng cách sử dụng hàm max[] như trong đoạn mã trên. Khi chạy đoạn mã trên, chúng ta sẽ nhận được đầu ra như trong hình bên dưới

Phương pháp 1 tìm phần tử tối đa thứ hai của danh sách python

Phương pháp 2

Trong phương thức này, đầu tiên chúng ta sẽ sắp xếp danh sách theo thứ tự tăng dần bằng cách sử dụng phương thức sort[] hoặc hàm sorted[]. Chúng tôi cũng lấy phần tử tối đa của danh sách ở đây và xóa phần tử tối đa bằng cách sử dụng phương thức remove[] bằng cách chuyển phần tử tối đa làm đối số cho phương thức remove[]. Phần tử cuối cùng của danh sách kết quả là phần tử lớn thứ hai bắt buộc của danh sách. Đoạn mã sau đây cho thấy một trình diễn đơn giản của phương pháp

# The python list in which we need to find the second largest element
list1 = [1, 3, 5, 1,333, 44, 1000, 23, 1000, 333]
# displaying the list
print[f" [+] Given list {list1}\n"]
# getting the maximum of the list
list1.sort[]
m = list1[-1]

def check_max[m]:
    if max[list1] == m:
        return True
    else:
        return False

while check_max[m]:
    list1.remove[m]

print[f" [+] The second largest element of the list is {list1[-1]}"]

Đoạn mã trên gần giống như đoạn mã trước, nhưng điểm khác biệt duy nhất ở đây là chúng ta sử dụng lập chỉ mục phủ định ở cả hai vị trí để lấy phần tử tối đa của danh sách thay vì sử dụng hàm max[]. Vì vậy, sẽ có một số khác biệt về thời gian thực hiện cả hai chương trình

Phương pháp 2 tìm phần tử tối đa thứ hai của danh sách python

Phương pháp 3

Phương pháp này gần giống với phương pháp trước. Trong phương thức này, đầu tiên, chúng ta sẽ tìm phần tử max và xóa nó khỏi danh sách bằng cách sử dụng phương thức remove[] như đã thực hiện trong phương thức trước. Sau đó, chúng ta lại sử dụng phương thức max[] để tìm phần tử max của danh sách. Sự khác biệt chính của phương pháp này so với hai phương pháp trước đó là nó không yêu cầu sắp xếp. Đoạn mã sau đây cho thấy một bản demo đơn giản của phương pháp

ĐỀ XUẤT ĐỌC

  • Cách định dạng thiết bị đầu cuối bằng thư viện phong phú của Python

  • Phân tích chuỗi thời gian trong Python

# The python list in which we need to find the second largest element
list1 = [1, 3, 5, 1,333, 44, 1000, 23, 1000, 333]
# displaying the list
print[f" [+] Given list {list1}\n"]

# getting the maximum of the list
m = max[list1]

def check_max[m]:
    if max[list1] == m:
        return True
    else:
        return False

while check_max[m]:
    list1.remove[m]

print[f" [+] The second largest number of the list is {max[list1]}"]

Ở phương pháp này, chúng ta chưa sắp xếp danh sách python mà sử dụng trực tiếp hàm max[] của python. Vì vậy, trong dòng mã đầu tiên, chúng tôi đã tạo một danh sách python chứa một số số nguyên. Sau đó, chúng tôi sử dụng hàm max[] của python và chuyển danh sách python làm đối số của nó để nó tính số nguyên tối đa của danh sách

Sau đó, chúng ta sử dụng vòng lặp while với hàm check_max[] sẽ kiểm tra tất cả các lần xuất hiện của số nguyên lớn nhất, i. e. , 1000 trong danh sách và xóa tất cả chúng bằng phương thức remove[] của python. Chúng tôi lại sử dụng hàm max[] và chuyển danh sách làm đối số của nó để trả về phần tử max của danh sách mới, đây sẽ là phần tử lớn thứ hai của danh sách. Khi chạy đoạn mã trên, chúng ta sẽ nhận được đầu ra như trong hình bên dưới

Phương pháp 3 tìm phần tử tối đa thứ hai của danh sách python

Phương pháp 4

Phương pháp này hơi khác so với các phương pháp mà chúng ta đã thảo luận cho đến bây giờ. Trong phương pháp này, trước tiên chúng tôi sẽ loại bỏ tất cả các phần tử trùng lặp của danh sách bằng cách chuyển đổi danh sách thành một tập hợp và một lần nữa chuyển đổi nó thành danh sách. Sau đó, phần tử cuối cùng thứ hai của danh sách sẽ là phần tử lớn thứ hai và có thể thu được bằng cách sử dụng chỉ mục phủ định. Đoạn mã sau đây minh họa phương pháp

# The python list in which we need to find the second largest element
list1 = [1, 3, 5, 1,333, 44, 1000, 23, 1000, 333]
# displaying the list
print[f" [+] Given list {list1}\n"]

# transforming the list into a set to get the unique values
set1 = set[list1]
# Again transforming the set into a list
list2 = list[set1] 

print[f" [+] The second largest number of the list is {list2[-2]}"]

Phương pháp này là một trong những phương pháp tốt nhất để tìm phần tử tối đa thứ hai của danh sách. Trong đoạn mã trên, đầu tiên chúng ta tạo một danh sách python chứa một số số nguyên và hiển thị danh sách bằng hàm print như chúng ta thực hiện trong ba phương thức trên. Sau đó, chúng tôi sử dụng chuyển đổi loại để chuyển đổi danh sách python thành bộ python. Lợi ích của việc này là tập hợp python chỉ có thể chứa các giá trị duy nhất theo thứ tự được sắp xếp, vì vậy tất cả các giá trị trùng lặp của danh sách sẽ bị xóa trong tập hợp và tập hợp sẽ được sắp xếp. Cuối cùng, chúng tôi lại chuyển đổi tập hợp thành danh sách python để nhận danh sách python chứa các phần tử duy nhất theo thứ tự được sắp xếp. Bây giờ, phần tử lớn thứ hai của danh sách này có thể được truy cập bằng cách sử dụng chỉ mục phủ định của -2

Khi chạy đoạn mã trên, chúng ta sẽ nhận được đầu ra như trong hình bên dưới

ĐỀ XUẤT ĐỌC

  • Cách định dạng thiết bị đầu cuối bằng thư viện phong phú của Python

  • Phân tích chuỗi thời gian trong Python

Phương pháp 4 tìm phần tử tối đa thứ hai của danh sách python

Đầu vào của người dùng

Chúng tôi đã xem xét bốn phương pháp để tìm số lớn thứ hai trong danh sách python. Nhưng trong tất cả các phương pháp trên, chúng tôi đã sử dụng một danh sách có dữ liệu được xác định trước. Bây giờ chúng ta sẽ xem một chương trình khác trong đó chúng ta sẽ lấy danh sách python làm đầu vào từ người dùng và in phần tử lớn thứ hai của danh sách. Xem đoạn mã dưới đây để minh họa

# TAking the python list as input in which 
# we need to find the second largest element

list1 = []
n = int[input["Enter the list size : "]]
for i in range[0, n]:
    item = int[input[]]
    list1.append[item]

# displaying the list
print[f"[+] Given list {list1}\n"]

# transforming the list into a set to get the unique values
set1 = set[list1]
# Again transforming the set into a list
list2 = list[set1] 

print[f"[+] The second largest number of the list is {list2[-2]}"]

Trong đoạn mã trên, trước tiên chúng tôi tạo một danh sách trống và chúng tôi lấy số phần tử của danh sách làm đầu vào từ người dùng. Sau đó, chúng tôi đã sử dụng vòng lặp python for để lặp lại và lấy từng phần tử từ bảng điều khiển rồi nối phần tử đó vào danh sách python trống mà chúng tôi đã tạo. Cuối cùng, sau khi nhận được tất cả thông tin người dùng nhập vào danh sách, chúng tôi sử dụng phương pháp 4 mà chúng tôi đã thảo luận để tìm phần tử lớn thứ hai của danh sách python. Khi chạy đoạn mã trên trong trình thông dịch python3, chúng ta sẽ nhận được đầu ra như trong hình bên dưới

Lấy danh sách từ đầu vào của người dùng và in phần tử lớn thứ hai

Phần kết luận

Trong hướng dẫn này, chúng ta đã thấy bốn phương pháp để truy cập phần tử lớn thứ hai của danh sách python. Chúng tôi cũng đã xem xét lấy danh sách python làm đầu vào từ người dùng và tìm số lớn thứ hai trong danh sách. Bạn cũng có thể tò mò muốn xem hướng dẫn của chúng tôi về cách làm việc với từ điển trong python

Chủ Đề