📜  Python|列表中最大的、最小的、第二大的、第二小的

📅  最后修改于: 2022-05-13 01:55:30.964000             🧑  作者: Mango

Python|列表中最大的、最小的、第二大的、第二小的

因为与其他编程语言不同, Python没有数组,而是有列表。与数组相比,使用列表更容易和更舒适。此外, Python的大量内置函数使任务变得更容易。因此,使用这些技术,让我们尝试在给定列表中找到数字的各种范围。
例子:

Input : list = [12, 45, 2, 41, 31, 10, 8, 6, 4]
Output : 
Largest element is: 45
Smallest element is: 2
Second Largest element is: 41
Second Smallest element is: 4

Input : list = [22, 85, 62, 40, 55, 12, 39, 2, 43]
Output :
Largest element is: 85
Smallest element is: 2
Second Largest element is: 62
Second Smallest element is: 12

方法很简单。 Python允许我们使用 list()函数对列表进行排序。使用它,我们可以在排序后从该位置找到列表中的各种数字范围。就像第一个位置必须包含最小的元素,最后一个元素必须是最大的。

# Python prog to illustrate the following in a list
def find_len(list1):
    length = len(list1)
    list1.sort()
    print("Largest element is:", list1[length-1])
    print("Smallest element is:", list1[0])
    print("Second Largest element is:", list1[length-2])
    print("Second Smallest element is:", list1[1])
  
# Driver Code
list1=[12, 45, 2, 41, 31, 10, 8, 6, 4]
Largest = find_len(list1)
输出:
Largest element is: 45
Smallest element is: 2
Second Largest element is: 41
Second Smallest element is: 4

以下是进行以下计算的另一种传统方法。该算法很简单,我们取一个数字并将其与列表中存在的所有其他数字进行比较,得到最大、最小、第二大和第二小的元素。

# Python program to find largest, smallest, 
# second largest and second smallest in a
# list with complexity O(n)
def Range(list1): 
    largest = list1[0] 
    lowest = list1[0] 
    largest2 = None
    lowest2 = None
    for item in list1[1:]:     
        if item > largest: 
            largest2 = largest
            largest = item 
        elif largest2 == None or largest2 < item: 
            largest2 = item 
        if item < lowest: 
            lowest2 = lowest
            lowest = item 
        elif lowest2 == None or lowest2 > item: 
            lowest2 = item 
              
    print("Largest element is:", largest) 
    print("Smallest element is:", lowest) 
    print("Second Largest element is:", largest2) 
    print("Second Smallest element is:", lowest2) 
  
  
# Driver Code
list1 = [12, 45, 2, 41, 31, 10, 8, 6, 4]
Range(list1)
输出:
Largest element is: 45
Smallest element is: 2
Second Largest element is: 41
Second Smallest element is: 4