我相信有一种更简单的方法,我没有想到.
我调用了一系列返回列表的方法.列表可能是空的.如果列表非空,我想返回第一项;否则,我不想退货.该代码适用于:
my_list = get_list()
if len(my_list) > 0: return my_list[0]
return None
在我看来,应该有一个简单的单行成语来做这件事,但无论如何我都想不出来.在那里吗?
Edit:个
我在这里寻找单行表达式的原因不是因为我喜欢非常简洁的代码,而是因为我必须编写大量这样的代码:
x = get_first_list()
if x:
# do something with x[0]
# inevitably forget the [0] part, and have a bug to fix
y = get_second_list()
if y:
# do something with y[0]
# inevitably forget the [0] part AGAIN, and have another bug to fix
我想做的事情当然可以通过一个函数来完成(而且可能会是):
def first_item(list_or_none):
if list_or_none: return list_or_none[0]
x = first_item(get_first_list())
if x:
# do something with x
y = first_item(get_second_list())
if y:
# do something with y
我提出这个问题是因为我经常对Python中的简单表达式能做的事情感到惊讶,我认为如果有一个简单的表达式就可以做到这一点,那么编写函数是一件很愚蠢的事情.但是看到这些答案,它似乎是一个函数is的简单解决方案.