【发布时间】:2019-09-09 10:56:22
【问题描述】:
我有一个列表l = [1, 2, 3],我想要l[2->infinity] == 3。它基本上看起来像[1, 2, 3, 3, 3, 3, ...]。我试过了:
[1, 2, *3]
或
[1, 2, 3, ...]
是否可以为一系列索引添加“默认元素”?
澄清
我不想重复元素 n 次,因为我无法在列表长度之外建立索引。我实际上想为2->infinity 中的所有索引设置一个值。该索引范围的某种默认值。
【问题讨论】:
-
Python 列表是有限的。我们不是 Haskell。
-
由于澄清而提名此问题重新开放。我认为Harry的问题的实际答案是覆盖
__getitem__(我认为问题的细节使它足够独特,但如果它是重复的,那么它就是stackoverflow.com/questions/1957780/…的重复) -
同意。从问题的标题来看并不明显,但是当 OP 要求“为一系列索引添加 [ing] 一个‘默认元素’”时,是的,很明显
__getitem__是要走的路。这肯定是有效获得a[1000000]的更好方法。