1

The following code does not execute the for loop for whole size of the list.

The code takes number of players (n) and their score in a list and finds out the SECOND RUNNER UP.

size of list : n

list name : arr

n = int(input())

arr = list(map(int, input().split()))

maximum = max(arr)

print(maximum)

arr.remove(maximum)

for i in arr:

    if i == maximum:
        arr.remove(maximum)

        print(arr)

    else:

        print("second runner up ", i)

print(max(i))

example:

n : 10
arr: 6 6 6 6 6 6 6 6 6 1

output : 1

nehat280
  • 51
  • 7
  • You can just avoid removal: second = None; for i in l: if second is None or second < i < maximum: second = i Alternatively you can use a comprehension max( (i for i in l if i – Serge Oct 25 '18 at 14:51

1 Answers1

-1
n = int(input())

arr = list(map(int, input().split()))

maximum = max(arr)

print(maximum)

arr.remove(maximum)

for i in arr:

    if i == maximum:
        arr.remove(maximum)

        print(arr)

else:

    print("second runner up ", i)

    print(max(i))

make sure you put tab in front of your else statement

n = int(input())

arr = list(map(int, input().split()))

maximum = max(arr)

print(maximum)

arr.remove(maximum)

for i in arr:

    if i == maximum:
        arr.remove(maximum)

        print(arr)

    else:

        print("second runner up ", i)

        print(max(i))
Neo
  • 79
  • 6
  • a) the result would not return the second runner up but all != max b) use spaces not tabs – Serge Oct 25 '18 at 14:22