python基础2(来自廖雪峰的官方网站)
list和tuple
list
Python內(nèi)置的一種數(shù)據(jù)類型是列表:list。list是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。
>>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy']如果要取最后一個(gè)元素,除了計(jì)算索引位置外,還可以用-1做索引,直接獲取最后一個(gè)元素:
>>> classmates[-1] 'Tracy'以此類推,可以獲取倒數(shù)第2個(gè)、倒數(shù)第3個(gè):
>>> classmates[-2] 'Bob' >>> classmates[-3] 'Michael' >>> classmates[-4] Traceback (most recent call last):File "<stdin>", line 1, in <module> IndexError: list index out of range往list中追加元素到末尾:append()
>>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam']也可以把元素插入到指定的位置:insert()
比如索引號為1的位置:
要刪除list末尾的元素,用pop()方法:
>>> classmates.pop() 'Adam' >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy']要?jiǎng)h除指定位置的元素,用pop(i)方法,其中i是索引位置:
>>> classmates.pop(1) 'Jack'`在這里插入代碼片` >>> classmates ['Michael', 'Bob', 'Tracy']要把某個(gè)元素替換成別的元素,可以直接賦值給對應(yīng)的索引位置:
>>> classmates[1] = 'Sarah' >>> classmates ['Michael', 'Sarah', 'Tracy']list里面的元素的數(shù)據(jù)類型也可以不同,比如:
>>> L = ['Apple', 123, True]list元素也可以是另一個(gè)list,比如:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme'] >>> len(s) 4要獲取asp,可以采用s[2][0]
如果一個(gè)list中一個(gè)元素也沒有,就是一個(gè)空的list,它的長度為0:
tuple
另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學(xué)的名字:
>>> classmates = ('Michael', 'Bob', 'Tracy')現(xiàn)在,classmates這個(gè)tuple不能變了,它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素。
不可變的tuple有什么意義?因?yàn)閠uple不可變,所以代碼更安全。如果可能,能用tuple代替list就盡量用tuple。
如果要定義一個(gè)空的tuple,可以寫成():
>>> t = () >>> t ()但是,要定義一個(gè)只有1個(gè)元素的tuple,如果你這么定義:
>>> t = (1) >>> t 1定義的不是tuple,是1這個(gè)數(shù)!這是因?yàn)槔ㄌ?)既可以表示tuple,又可以表示數(shù)學(xué)公式中的小括號,這就產(chǎn)生了歧義,因此,Python規(guī)定,這種情況下,按小括號進(jìn)行計(jì)算,計(jì)算結(jié)果自然是1。
所以,只有1個(gè)元素的tuple定義時(shí)必須加一個(gè)逗號,,來消除歧義:
Python在顯示只有1個(gè)元素的tuple時(shí),也會(huì)加一個(gè)逗號,,以免你誤解成數(shù)學(xué)計(jì)算意義上的括號。
最后來看一個(gè)“可變的”tuple:
>>> t = ('a', 'b', ['A', 'B']) >>> t[2][0] = 'X' >>> t[2][1] = 'Y' >>> t ('a', 'b', ['X', 'Y'])表面上看,tuple的元素確實(shí)變了,但其實(shí)變的不是tuple的元素,而是list的元素。tuple一開始指向的list并沒有改成別的list,所以,tuple所謂的“不變”是說,tuple的每個(gè)元素,指向永遠(yuǎn)不變。即指向’a’,就不能改成指向’b’,指向一個(gè)list,就不能改成指向其他對象,但指向的這個(gè)list本身是可變的!
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的python基础2(来自廖雪峰的官方网站)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python基础1(来自廖雪峰的官方网站
- 下一篇: python基础3(来自廖雪峰的官方网站