Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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,我是Python的新手,对列表中的插入操作有疑问 例1: mylist = ['a','b','c','d','e'] mylist.insert(len(mylist),'f') print(mylist) 输出: ['a', 'b', 'c', 'd', 'e', 'f'] ['a', 'b', 'c', 'd', 'e', 'f'] 例2: mylist = ['a','b','c','d','e'] mylist.insert(10,'f') print(mylist) 输出:

我是Python的新手,对列表中的插入操作有疑问

例1:

mylist = ['a','b','c','d','e']
mylist.insert(len(mylist),'f')
print(mylist)
输出:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c', 'd', 'e', 'f']
例2:

mylist = ['a','b','c','d','e']
mylist.insert(10,'f')
print(mylist)
输出:

['a', 'b', 'c', 'd', 'e', 'f']
['a', 'b', 'c', 'd', 'e', 'f']

在第二个示例中,为什么即使我给insert方法指定了索引10,它仍然在列表中插入'f'元素?

list.insert函数将在指定索引之前插入。由于在您的示例中,
列表
没有那么长,因此它位于末尾。如果你想把东西放在末尾,为什么不直接使用
list.append

x = ['a']
x.append('b')
print x
输出为

['a', 'b']

list.insert
函数将在指定索引之前插入。由于在您的示例中,
列表
没有那么长,因此它位于末尾。如果你想把东西放在末尾,为什么不直接使用
list.append

x = ['a']
x.append('b')
print x
输出为

['a', 'b']


这里的概念是“在具有此索引的元素之前插入”。为了能够在末尾插入,您必须允许无效的结束索引。由于Python中没有定义良好的“结束迭代器”或任何东西,因此只允许所有索引比只允许一个无效索引更有意义,但不允许其他索引。

这里的概念是“在具有此索引的元素之前插入”。为了能够在末尾插入,您必须允许无效的结束索引。由于Python中没有定义良好的“结束迭代器”或任何东西,因此只允许所有索引比允许一个无效索引更有意义,但是没有其他的。

如果将
'f'
放在第10个指数中,你认为其他指数会包含什么?@波动性一个不合理的假设将是一些sortI预期错误的错误。为什么它是这样工作的,并且没有给出任何错误。@vivekratnaparkhi如果你真的认为它是错误的,请提交一份Python增强建议。注意:Python2.x系列中的现有接口没有任何变化。如果它将
'f'
放在第10个索引中,您希望其他索引包含什么内容?@Volatility一个不合理的假设可能是某个sortI预期的错误。为什么它是这样工作的,并且没有给出任何错误。@vivekratnaparkhi如果你真的认为它是错误的,请提交一份Python增强建议。注意:Python2.x系列中的现有接口不再有任何更改。@vivekratnaparkhi:此行为在中有明确说明。引用-
a.insert(0,x)在列表的前面插入,而a.insert(len(a),x)相当于a.append(x)。
@vivekratnaparkhi如果你想得到非利士式的答案,请根据最少惊讶的原则阅读。OP并不是说使用insert来添加到列表的末尾。。。他预计,试图插入列表末尾的位置可能会引起错误(可能是
索引器
)。i、 为什么
a.insert(len(a),x)
应该等同于
a.insert(len(a)+100000000,x)
。我猜,这就是疑问所在。@SethMMorton:是的。这就是我想说的。@vivekratnaparkhi:这一行为在报告中有明确的说明。引用-
a.insert(0,x)在列表的前面插入,而a.insert(len(a),x)相当于a.append(x)。
@vivekratnaparkhi如果你想得到非利士式的答案,请根据最少惊讶的原则阅读。OP并不是说使用insert来添加到列表的末尾。。。他预计,试图插入列表末尾的位置可能会引起错误(可能是
索引器
)。i、 为什么
a.insert(len(a),x)
应该等同于
a.insert(len(a)+100000000,x)
。我猜,这就是疑问所在。@SethMMorton:是的。这就是我想说的,很有道理。谢谢,这很有道理。谢谢