Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
186 views
in Technique[技术] by (71.8m points)

python - Create function from try-except

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

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

1 Reply

0 votes
by (71.8m points)

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'

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...