python之list用法及其常見錯誤

這裏分享一下講義吧 python 裏面有一個很是強大的數據類型list。他什麼都能裝下。python

peter@智普教育:~$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> l1 = [4,5,"5"]
>>> print l1
[4, 5, '5']
>>>

從上面的例子你能夠看出 list裏面既能夠支持 int類型,也能夠支持str類型。linux

print l1[0]
>>> print l1[0]
4

list是能夠寫的,而int和str是隻讀的。app

>>> l1[0]="32"
>>> print l1
['32', 5, '5']

發生了什麼? 類型均可以改變!這就是奇蹟。 若是你要在C語言裏面這麼作幾乎是不可能的事情。 list 複製函數

>>> l1=[1,2,3]
>>> l2=l1
>>> l1[0]=10
>>> print l1
[10, 2, 3]
>>> print l2
[10, 2, 3]
>>>

如何複製?code

>>> l2=l1[:]
>>> print l2
[10, 2, 3]
>>> l1[0]=24
>>> print l1
[24, 2, 3]
>>> print l2
[10, 2, 3]
>>>

發生了什麼? 第一種是指向,其實仍是同一個內容。 第二種是複製。orm

本質上的區別rem

>>> l2 = l1
>>> l2 == l1 #值相同
True
>>> l2 is l1 #指向同一個地方
True
>>> l2 = l1[:]
>>> l2 == l1 #值相同
True
>>> l2 is l1 #並非指向同一個地方
False

列表裏面能夠放入一個列表嗎?it

l1=[1,"a",[2,3,4]]

能夠!io

如何取得2,3,4?ast

l1[2][0]

你不應作什麼?

>>> l1=[]
>>> l1[0]="a"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range

爲何? 由於l1等於一個空列表,沒有空間。 l1[0]是須要空間的。

咱們該怎麼讓空list存儲數據?

list有一寫默認的函數

l1.append("a")

刪除成員的方法

>>> l1.append("b")
>>> l1.append("c")
>>> l1.append("d")
>>> l1.append("b")
>>> print l1
["b", "c", "d","b"]
>>> l1.remove("b")
>>> print l1
["c", "d","b"]
>>> l1.remove("b")
>>> print l1
["c","d"]

還有

l1.pop()

再試一個刪除的高級用法

>>> print l1
[2, 3, 4, 5]
>>> del l1[1:3]
>>> print l1
[2, 5]

怎麼樣,python強大嗎?

如何插入一個元素:

>>> l1.insert(1,67)
>>> print l1
[2, 67, 5]
相關文章
相關標籤/搜索