列表上的Python插入操作
我是Python的新手,对列表中的插入操作有疑问 例1:列表上的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) 输出:
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:是的。这就是我想说的,很有道理。谢谢,这很有道理。谢谢