在Python中,计算列表最大值并输出值(即使列表为空(的方法是这样做:
max(python_list, default=0)
在 Python 中是否有任何类似的方法(在一个语句中,显然没有try
和except
或if
和else
(来计算平均值?
我使用了这个简单的代码:
average = sum(python_list)/ len(python_list)
显然,我收到此错误并显示空列表:
ZeroDivisionError: division by zero
基于or
运算符对真值的行为,即:
如果有的话,返回第一个 Truthy 值,否则返回最后一个 表达式中的值。
你可以做:
sum(lst) / (len(lst) or 1)
如果列表lst
为空,这将返回0
。请注意,这基本上是val if val else default
的快捷方式。
一种方法是:
sum([val/len(lst) for val in lst])
如果列表为空,则不会除以len(lst)
(即 0(,因此没有错误。如果列表为空,这将返回 0。
如果你认为答案是零,我会这样做,使用三元运算符:
avg = sum(lst) / len(lst) if lst else 0
这至少是一句话。