Python中的第二大数字

Python中的第二大数字

当我们的列表中有很多元素时,想要找到最大或最小的元素可能会浮现在脑海中,而Python使得这变得更加容易。

在这篇文章中,我们将会介绍如何从一个列表中找到Python中的第二大数字。

  1. 排序列表,然后打印倒数第二个数字。
  2. 删除最大的元素。
  3. 找到最大的元素。
  4. 遍历列表。

让我们先来看看第一种方法 –

排序列表,然后打印倒数第二个数字

以下程序演示了我们可以如何在Python中实现:

示例

#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])

输出:

The second largest element of the list is: 30

现在是解释的时候了-

  1. 我们声明了一个列表,我们想要从中取出倒数第二个元素。
  2. 在此之后,我们使用了排序方法,以便使列表中的所有元素按升序排列。
  3. 现在我们使用了负索引,因为第二大的数字将在倒数第二个位置上。

第二种方法是通过移除最大元素来获取列表的第二大元素。

让我们看看如何做到这一点。

移除最大元素

示例

#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))

输出:

30

解释 –

让我们了解一下上面程序中的操作-

  1. 我们声明了一个列表,从中取出倒数第二个元素。
  2. 在此之后,我们使用set方法获取列表中所有唯一的元素。
  3. 现在我们使用max()来获取列表中的最大值,然后移除它。
  4. 在此之后,我们打印结果列表中的最大值,即可得到第二大的数字。

在第三种方法中,我们将使用for循环从列表中找出第二大的数字。

示例

# 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])

输出:

Enter number of elements in list: 5

Enter the elements: 10

Enter the elements: 20

Enter the elements: 30

Enter the elements: 40

Enter the elements: 50
The second largest element is: 40

解释 –

让我们来看看我们在这里做了什么-

  1. 我们声明了一个空列表,我们将在其中插入元素。
  2. 在此之后,我们要求用户提供我们想要添加到列表中的元素数量。
  3. 在此之后,我们使用sort方法,使得我们列表中的所有元素按升序排列。
  4. 现在我们使用负索引,因为第二大的数字将出现在倒数第二个位置。

遍历列表

在最后一个程序中,我们将遍历列表以找出最大的数字,然后使用条件语句来找出列表中的第二大数字。

以下程序说明了相同的内容-

示例

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]))

输出:

30

解释 –

让我们理解上面程序中我们所做的事情-

  1. 步骤1是创建一个函数,通过遍历列表来检查最大的数字。
  2. 在下一个for循环中,我们再次遍历列表以找到最大的数字,但这次不包括之前的数字,因为我们的目标是找到第二大的数字。
  3. 最后,我们将列表传递给函数。

因此,在本文中,我们有机会开拓思维并发现一些在Python中查找第二大数字的新方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程