Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以Python方式向列表中添加项_Python_List - Fatal编程技术网

以Python方式向列表中添加项

以Python方式向列表中添加项,python,list,Python,List,我想知道是否有一种更具pythonic风格的方法可以根据(默认)索引将元素添加到列表中。如果索引超出范围会发生什么。(我来自爪哇) self.releases=[] def add_release(self,release,index=-1): 列表长度=len(自发布) 如果指数

我想知道是否有一种更具pythonic风格的方法可以根据(默认)索引将元素添加到列表中。如果索引超出范围会发生什么。(我来自爪哇)

self.releases=[]
def add_release(self,release,index=-1):
列表长度=len(自发布)
如果指数<0:
#在列表末尾添加元素
self.releases.append(release)
elif索引<列表长度:
#在给定索引处添加元素
self.releases.insert(索引,发布)
其他:
#索引超出范围~在该索引处添加元素时会发生什么情况?
通过

提前感谢。

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

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

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

尝试查看插入方法

a=[]
a.insert(index, value)
如果您确信自己没有出界,您也可以

a[index] = value

请注意,如果有任何

列表,则它将覆盖给定索引处的值。append()
仅接受一个参数-一个要向列表追加的值。如果要在任意位置插入,需要使用
List.insert()
,它将超出范围的位置参数视为对
append

append
的调用,接受
1
参数并将其添加到末尾。也许您希望
ìnsert
a[index]=value
替换该索引处的值。它不等同于插入。我已经添加了一个注释,但是函数名是
add\u release()
,那么为什么要覆盖现有值呢?我不想覆盖。但我认为他只是想添加另一个“相关”操作,这对学习很有好处!但是,我要用方法名进行智能捕获。谢谢!这就是我要找的。在什么条件下插入raiseindexer?我正在使用Python3.3,在列表的开头添加了大量的负索引。大的正向索引会添加到末尾。范围(1,len(list)-1)中的索引添加到中间。我找不到带insert的索引器。@EricRoper:啊,当然,你是对的。它永远不会上升。有趣的是我知道。。。更正。
a[index] = value