Python 中的第二大数字

原文:https://www.javatpoint.com/second-largest-number-in-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. 在此之后,我们使用排序方法,以便列表中的所有元素都按升序排列。

  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. 第一步是创建一个函数,通过遍历来检查列表中最大的数字。

  2. 在下一个 for循环中,我们再次遍历列表以找到最高的数字,但这次不包括前一个,因为这里我们的目标是找到第二大函数。

  3. 最后,我们在函数中传递我们的列表。

因此,在本文中,我们有机会跳出框框思考,并发现一些新的方法来开发在 Python 中寻找第二大数字的逻辑。