以Pythonic方式将项添加到列表中

时间:2013-02-28 14:08:30

标签: python list

我想知道是否有更多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

提前致谢。

3 个答案:

答案 0 :(得分:6)

将索引保留在-1,然后捕获异常:

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

当您使用带有负索引的.insert()时,将相对于列表的长度插入该项目。越界指数重新回到界限;超出长度的插入与追加相同,在0索引插入0之前插入。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

尝试查看插入方法

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

如果你确定自己没有出界,你也可以

a[index] = value

请注意,如果有任何

,它将覆盖给定索引处的值