Python中的第二大数字
当我们的列表中有很多元素时,想要找到最大或最小的元素可能会浮现在脑海中,而Python使得这变得更加容易。
在这篇文章中,我们将会介绍如何从一个列表中找到Python中的第二大数字。
- 排序列表,然后打印倒数第二个数字。
- 删除最大的元素。
- 找到最大的元素。
- 遍历列表。
让我们先来看看第一种方法 –
排序列表,然后打印倒数第二个数字
以下程序演示了我们可以如何在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
现在是解释的时候了-
- 我们声明了一个列表,我们想要从中取出倒数第二个元素。
- 在此之后,我们使用了排序方法,以便使列表中的所有元素按升序排列。
- 现在我们使用了负索引,因为第二大的数字将在倒数第二个位置上。
第二种方法是通过移除最大元素来获取列表的第二大元素。
让我们看看如何做到这一点。
移除最大元素
示例
#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
解释 –
让我们了解一下上面程序中的操作-
- 我们声明了一个列表,从中取出倒数第二个元素。
- 在此之后,我们使用set方法获取列表中所有唯一的元素。
- 现在我们使用max()来获取列表中的最大值,然后移除它。
- 在此之后,我们打印结果列表中的最大值,即可得到第二大的数字。
在第三种方法中,我们将使用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
解释 –
让我们来看看我们在这里做了什么-
- 我们声明了一个空列表,我们将在其中插入元素。
- 在此之后,我们要求用户提供我们想要添加到列表中的元素数量。
- 在此之后,我们使用sort方法,使得我们列表中的所有元素按升序排列。
- 现在我们使用负索引,因为第二大的数字将出现在倒数第二个位置。
遍历列表
在最后一个程序中,我们将遍历列表以找出最大的数字,然后使用条件语句来找出列表中的第二大数字。
以下程序说明了相同的内容-
示例
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是创建一个函数,通过遍历列表来检查最大的数字。
- 在下一个for循环中,我们再次遍历列表以找到最大的数字,但这次不包括之前的数字,因为我们的目标是找到第二大的数字。
- 最后,我们将列表传递给函数。
因此,在本文中,我们有机会开拓思维并发现一些在Python中查找第二大数字的新方法。