2

我想知道是否有一种更 Pythonic的方式可以将元素添加到列表中,具体取决于(默认)索引。如果索引超出范围会发生什么。(我来自Java)

self.releases = []

def add_release(self, release, index=-1):

    list_length = len(self.releases)

    if index < 0:
        # add element at the end of the list
        self.releases.append(release)
    elif index < list_length:
        # add element at the given index
        self.releases.insert(index, release)
    else:
        # index is out of bound ~ what will happen when an element will be added at this index?
        pass

提前致谢。

4

3 回答 3

6

将索引保留在-1,并改为捕获异常:

def add_release(self, release, index=-1):
    self.releases.insert(index, release)

当您使用.insert()负索引时,该项目是相对于列表的长度插入的。越界索引被带回边界;插入超出长度与追加相同,在 0 索引之前插入插入 0 处。

于 2013-02-28T14:13:01.907 回答
3

List.append()只接受一个参数 - 一个附加到列表的值。如果要在任意位置插入,则需要List.insert(),它将超出范围的位置参数视为对 的调用append

于 2013-02-28T14:16:47.357 回答
0

试试看一下插入方法

a=[]
a.insert(index, value)

如果你确定你没有越界,你也可以

a[index] = value

请注意,如果有任何索引,它将覆盖给定索引处的值

于 2013-02-28T14:13:10.587 回答