-1

Based on the example provided in this answer, how can I create a function from:

from collections import Counter
s =  ['0', '0', '2', '1', '1', '0', '0', '0']
try:
    print(next(t[0] for t in Counter(s).most_common(2) if t[0] != '0'))
except StopIteration:
    print('0')

This code doesn't work:

def most_common_number(s):
    try:
        return next(t[0] for t in Counter(s).most_common(2) if t[0] != '0')
    except StopIteration:
        '0'

If it is possible to get the same results without try-except please let me know

Brad Larson
  • 170,088
  • 45
  • 397
  • 571
illuminato
  • 1,057
  • 1
  • 11
  • 33

1 Answers1

3

You need to return from the except block.

def most_common_number(s):
    try:
        return next(t[0] for t in Counter(s).most_common(2) if t[0] != '0')
    except StopIteration:
        return '0'
Barmar
  • 741,623
  • 53
  • 500
  • 612