WAP to input N numbers and then print the second largest no in python
Answers
Answer:
Method 1: Sorting is an easier but less optimal method. Given below is an O(n) algorithm to do the same.
Python program to find second largest
# number in a list
# list of numbers - length of list should be at least 2
list1 = [10, 20, 4, 45, 99]
mx=max(list1[0],list1[1])
secondmax=min(list1[0],list1[1])
n =len(list1)
for i in range(2,n):
if list1[i]>mx:
secondmax=mx
mx=list1[i]
elif list1[i]>secondmax and mx != list1[i]:
secondmax=list1[i]
else:
if secondmax == mx:
secondmax = list1[i]
print("Second highest number is : ",str(secondmax))
Method 2 : Sort the list in ascending order and print the second last element in the list.
# Python program to find largest
# number in a list
# list of numbers
list1 = [10, 20, 4, 45, 99]
# sorting the list
list1.sort()
# printing the second last element
print("Second largest element is:", list1[-2])
Output:
Largest element is: 45
Method 3 : By removing the max element from list
# Python program to find second largest
# number in a list
# list of numbers
list1 = [10, 20, 4, 45, 99]
# new_list is a set of list1
new_list = set(list1)
# removing the largest element from temp list
new_list.remove(max(new_list))
# elements in original list are not changed
# print(list1)
print(max(new_list))
Output:
Largest element is: 45
Method 3 : Find max list element on inputs provided by user
# Python program to find second largest
# number in a list
# creating empty list
list1 = []
# asking number of elements to put in list
num = int(input("Enter number of elements in list: "))
# iterating till num to append elements in list
for i in range(1, num + 1):
ele = int(input("Enter elements: "))
list1.append(ele)
'''
# sort the list
list1.sort()
# print second maximum element
print("Second largest element is:", list1[-2])
'''
# print second maximum element using sorted() method
print("Second largest element is:", sorted(list1)[-2])
Output:
Enter number of elements in list: 4
Enter elements: 12
Enter elements: 19
Enter elements: 1
Enter elements: 99
Largest element is: 19
Answer:
Hey! Here is your python code...
x = int(input("How many numbers? "))
nums = [ ]
for i in range(x):
a = int(input("Enter a number: "))
nums.append(a)
nums.remove(max(nums))
print("Second largest number = ", max(nums))
# HOPE THIS HELPS!!