我是从 Python Cookbook 中看到的:
def sum(items):
head, *tail = items
return head + sum(tail) if tail else head
items = [1, 10, 7, 4, 5, 9]
print(sum(items)) #36
它说它是一种聪明的递归算法。
答案 0 :(得分:6)
A if PREDICATE else B
如果PREDICATE
为真,则产生A,否则产生B.
>>> 'A' if 1 < 2 else 'B'
'A'
>>> 'A' if 1 > 2 else 'B'
'B'
答案 1 :(得分:3)
sum(tail)
也是表达的一部分
该表达式的结构是:
result = Val1 if condition else Val2
它相当于:
if (condition):
result = Val1
else:
result = Val2
答案 2 :(得分:1)
换句话说,它可以写成:
if tail:
return head + sum(tail)
else:
return head
答案 3 :(得分:0)
可以改写如下:
def sum(items):
head + *tail = items
while tail:
return head + sum(tail)