# Python: Calculating the Largest and 2nd largest value in the list

Hi,
I am trying to calculate the largest and 2nd largest values in Python. Following is my code:

``````def find_largest_and_second_Largest(list1):
maxV = max(list1, list1)
max2V = min(list1, list1)
for i in range (2, len(list1)):
if (maxV > list1[i]):
if (max2V > list1[i]):
continue
else:
max2V = list1[i]
else:
maxV= list1[i]
max2V = maxV
print("Largest ="+ str(max))
print("2nd Largest =" + str(max2V))
``````

The output is:
Largest =
2nd Largest =34

Zulfi.

I think your error is here

``````    print("Largest ="+ str(max))
``````

you have `str(max)` instead of `str(maxV)`

BUT, I think this would seem more pythonic and easier to read:

``````def find_largest_and_second_largest(list1):
maxV = max(list1)
max2V = min(list1)
if  len(list1) > 2:
for i in list1:
max2V = i if (i<maxV and i>max2V) else max2V
print("Largest ="+ str(maxV))
print("2nd Largest =" + str(max2V))

find_largest_and_second_largest([1,2,3,4,5,6,7])
``````

in fact if you were ‘code golfing’ you could even remove my ` if len(list1) > 2:` and it would still work.

Hope that helps. 3 Likes

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.