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
930 views
in Technique[技术] by (71.8m points)

conditional statements - Is there a way of include multiple conditions in a Python next function?

The general idea is that I want to find the first value in each list that meets any of two conditions. i.e.: ′

a = next((x for x in the_iterable if x > 3), default_value)

However, I want it to have multiple conditions, something like:

a = next((x for x in the_iterable if x > 3 or x-1 for x in the_iterable if x>2), default_value)

My code right now looks something like:

a = []
for x in iterable:
  if x>3:
    a.append(x)
    break
  elif x>4:
    a.append(x-1)
    break

question from:https://stackoverflow.com/questions/65926486/is-there-a-way-of-include-multiple-conditions-in-a-python-next-function

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

1 Reply

0 votes
by (71.8m points)

Your code right now is much prettier, but this would work:

a = next((
 (x - 1 if x > 4 else x) 
 for x in the_iterable 
 if (x > 3 or x > 4)
), default_value)

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

...