2012-06-12 118 views
2

.append 函數將元素添加到列表中。 如何將元素添加到列表中?相反?所以索引零是新值,舊值在索引中上移? 什麼附加我該如何追溯? python

我想要什麼。

[e,d,c,b,a] 

非常感謝。

+3

我注意到,你問,看起來幾個問題非常可疑地像家庭作業......所以在回答這個問題之前,請告訴我們:你們做了什麼來嘗試自己解決這個問題?花費15個小時谷歌搜索的東西 –

+1

。你呢,你今天過得如何? –

+3

嗯,當然 - 如果你用google搜索「東西」,你不太可能找到任何有用的Python相關結果:)但是,更嚴重的是:在將來,請查看內置類型的文檔頁面。例如,使用「Python列表」搜索產生http://docs.python.org/tutorial/datastructures.html作爲最重要的結果,其中包含您所追蹤的信息。 –

回答

16

假設你有一個清單aa = [1, 2, 3]

現在假設你想知道你可以做這個列表什麼樣的事情:

dir(a) 

Hmmmm ...不知道這個insert啄做什麼..

help(a.insert) 

在索引之前插入對象,你說?爲什麼,這聽起來很像我想要做的!如果我想在列表的開頭插入一些東西,那麼在索引0之前將會是。我想要插入什麼對象?讓我們試試7 ...

a.insert(0, 7) 
print a 

那麼,看看那個7就在列表的前面!

TL; DR:dir()將讓你看到什麼是可用的,help()會告訴你它是如何工作的,然後你可以玩它,看看它做什麼,或者谷歌了一些文件,因爲你現在知道什麼功能你想叫。

2

使用Python的名單insert命令0的位置值將在列表的頭部插入值,這樣就插入了以相反的順序:

your_list.insert(0, new_item) 
4

使用somelist.insert(0, item)放置itemsomelist開始,向下移動所有其他元素。請注意,對於大型列表,這是一個非常昂貴的操作。考慮使用deque來代替,如果您將要添加項目或從序列的兩端刪除項目。

2

你可以做

your_list=['New item!!']+your_list 

但插入方法的工作原理也是如此。

6

爲此,使用deque(雙端隊列)會更高效。由於每個元素都必須被移位,這要求O(N)的運行時間,在deque中,相同的操作是O(1),所以在索引0處插入在列表中是非常昂貴的。

>>> from collections import deque 
>>> x = deque() 
>>> x.appendleft('a') 
>>> x.appendleft('b') 
>>> x 
deque(['b', 'a']) 
0

使用以下(假設x是要在前面加上什麼):

your_list = [x] + your_list 

或:

your_list.insert(0, x)