2014-11-06 73 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

相關問題