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