这是我使用的模式:
mylist = [10, 2, 20, 5, 50]found = next(i for i in mylist if predicate(i))
或者,在Python 2.4 / 2.5中,
next()它不是内置的:
found = (i for i in mylist if predicate(i)).next()
请注意,如果未找到任何元素,则会
next()引发
StopIteration。在大多数情况下,这可能很好。您要求输入第一个元素,不存在这样的元素,因此程序可能无法继续。
另一方面,如果您 确实 知道在这种情况下该怎么办,则可以提供默认值
next():
conf_files = ['~/.foorc', '/etc/foorc']conf_file = next((f for f in conf_files if os.path.exists(f)), '/usr/lib/share/foo.defaults')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)