Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
185 views
Welcome To Ask or Share your Answers For Others

1 Answer

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'

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...