【发布时间】:2017-12-02 09:52:52
【问题描述】:
列表理解是否可以这样做。例如,如果我调用函数 f4(5),它应该显示为:[[[[[]]]]]。所以每次都在前一个列表中追加空列表。
【问题讨论】:
-
列表理解的目的是什么?
列表理解是否可以这样做。例如,如果我调用函数 f4(5),它应该显示为:[[[[[]]]]]。所以每次都在前一个列表中追加空列表。
【问题讨论】:
您可以将列表附加到自身,由于列表是可变的,因此会引发递归,导致无限嵌套的列表可以被索引直到递归限制。 Python 使用省略号占位符来显示:
>>> lst = []
>>> lst.append(lst)
>>> lst
[[...]]
>>> lst[0][0][0][0][0]
[[...]]
但是,我可以想象这根本没有实际用途。
【讨论】:
def f(x):
if x == 1:
return []
return [f(x-1)]
print(f(5))
输出:
[[[[[[]]]]]]
【讨论】:
我看不出它有什么实际用途,但当然有可能。
def f(n):
return [f(n - 1)] if n > 1 else []
【讨论】: