2014-11-06 215 views
0

为什么idx = None?如何在python中使用list.append()后得到最后一个元素索引

myList = [] 
idx = myList.append("abc") 
print myList 
print idx 
print myList[0] 

打印结果是:

['abc'] 
None 
abc 
+0

MyList.append的值()不给你任何东西。 append()方法简单地附加,即其无效。你正在想它作为一个数据库插入命令,它应该返回它插入的索引。 – ha9u63ar 2014-11-06 08:36:50

+0

'append'不返回任何值。你必须做'myList.index(“abc”)' – dazedconfused 2014-11-06 08:36:55

+0

@Figo你真正的问题是什么? – 2014-11-06 08:46:12

回答

2

Python documentation

你可能已经注意到,像插入方法,删除或那种只修改已没有返回值打印名单 - 他们返回默认无1这是一个设计原则。 Python中的所有可变数据结构

0

由于append方法不返回任何值。它只会将元素附加到列表中。

0

最后一个元素的索引是len(myList)-1

func追加没有返回。

+1

使用mylist好多了[-1] – 2014-11-06 08:43:30

+0

对不起,很久没有python了... – 2014-11-06 12:00:23

+1

等等,他想要最后一个元素的索引! – 2014-11-06 12:01:07

0

见我PyCharm

class list(object) 
    def append(self, x) 
Inferred type: (self: list[T], x: T) -> None 

所以idx = myList.append("abc")下面的文档将让IDX是无因append方法只是返回。

0

.append函数不会返回新元素的索引(事实上,它什么都不返回),所以索引被赋值为“None”。

如果您想要最后一个元素的索引,它比列表的长度小len(myList) -1

2

您可以使用list[-1]得到最后一个元素,它很酷。 Python很酷。

如果你真的想list.append()回到你,你应该创建自己的类从list继承和重新定义append()功能

+0

我认为这不是他想要的。 – 2014-11-06 08:47:15

相关问题