Python之list添加新元素
現在,班裏有3名同學:
>>> L = ['Adam', 'Lisa', 'Bart']
今天,班裏轉來一名新同學 Paul,如何把新同學添加到現有的 list 中呢?
第一個辦法是用 list 的 append()
方法,把新同學追加到 list 的末尾:
>>> L = ['Adam', 'Lisa', 'Bart'] >>> L.append('Paul') >>> print L ['Adam', 'Lisa', 'Bart', 'Paul']
append()總是把新的元素添加到 list 的尾部。
如果 Paul 同學表示自己總是考滿分,要求添加到第一的位置,怎麼辦?
方法是用list的 insert()
方法,它接受兩個參數,第一個參數是索引號,第二個參數是待添加的新元素:
>>> L = ['Adam', 'Lisa', 'Bart'] >>> L.insert(0, 'Paul') >>> print L ['Paul', 'Adam', 'Lisa', 'Bart']
L.insert(0, 'Paul') 的意思是,'Paul'將被添加到索引爲 0 的位置上(也就是第一個),而原來索引爲 0 的Adam同學,以及後面的所有同學,都自動向後移動一位。
假設新來一名學生Paul,Paul 同學的成績比Bart好,但是比Lisa差,他應該排到第三名的位置,用代碼實現是這樣:
L = ['Adam', 'Lisa', 'Bart'] L.insert(2, 'Paul') print L
Python從list刪除元素
Paul同學剛來幾天又要轉走了,那麼我們怎麼把Paul 從現有的list中刪除呢?
如果Paul同學排在最後一個,我們可以用list的pop()
方法刪除:
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul'] >>> L.pop() 'Paul' >>> print L ['Adam', 'Lisa', 'Bart']
pop()方法總是刪掉list的最後一個元素,並且它還返回這個元素,所以我們執行 L.pop() 後,會打印出 'Paul'。
如果Paul同學不是排在最後一個怎麼辦?比如Paul同學排在第三:
>>> L = ['Adam', 'Lisa', 'Paul', 'Bart']
要把Paul踢出list,我們就必須先定位Paul的位置。由於Paul的索引是2,因此,用 pop(2)
把Paul刪掉:
>>> L.pop(2) 'Paul' >>> print L ['Adam', 'Lisa', 'Bart']
Python中替換元素
假設現在班裏仍然是3名同學:
>>> L = ['Adam', 'Lisa', 'Bart']
現在,Bart同學要轉學走了,碰巧來了一個Paul同學,要更新班級成員名單,我們可以先把Bart刪掉,再把Paul添加進來。
另一個辦法是直接用Paul把Bart給替換掉:
>>> L[2] = 'Paul' >>> print L L = ['Adam', 'Lisa', 'Paul']
對list中的某一個索引賦值,就可以直接用新的元素替換掉原來的元素,list包含的元素個數保持不變。
由於Bart還可以用 -1 做索引,因此,下面的代碼也可以完成同樣的替換工作:
>>> L[-1] = 'Paul'
班裏的同學按照分數排名是這樣的:
L = ['Adam', 'Lisa', 'Bart']
但是,在一次考試後,Bart同學意外取得第一,而Adam同學考了倒數第一。
請通過對list的索引賦值,生成新的排名。
L = ['Adam', 'Lisa', 'Bart']
L[0]='Bart'
L[-1]='Adam'
print L