python列表[list]和元組(tuple)詳情
列表和元組:
list是一種有序的集合,可以隨時添加和刪除其中的元素.
1,創(chuàng)建一個普通列表
List = ['Jack','Bob','Lucy','Rose']
- Append() 末尾追加元素
- conunt()列表中某個元素的數(shù)量
extend()可以在列表尾部追加包含多個值的另一個序列,而list的append()只能添加一個值.
可以說list的extend方法是有擴展列表的作用:
list1 = [1,2,3] list2 = [7,8,9] list1.extend(list2) print(list1) # [1, 2, 3, 7, 8, 9]
index() 獲取列表中某個元素的索引值,list的索引值從0開始,同樣可以用索引找到元素 list[index],當(dāng)索引超出了范圍時 ,Python會報一個IndexError錯誤,(索引錯誤)所以,要確保索引不要越界,有的同學(xué)說了 那元素多了,又不知道列表中有多少個元素,我想取最后一個怎么辦呢 第一種辦法,先獲取這個列表的長度,
例如:len(list2) 第二個辦法:list2[-1]
- insert()在某個索引位置添加某個元素
- pop()刪除元素 傳遞的是待刪除元素的
- indexremove()傳遞待刪除元素,如果多個元素一樣,默認(rèn)刪除第一個
x = ['a', 'b', 'a', 'c', 'd'] x.remove('a') print (x) # ['b', 'a', 'c', 'd']
- reverse() 是把原列表中的元素順序從左至右的重新存放,而不會對列表中的參數(shù)進行排序整理.
- 如果需要對列表中的參數(shù)進行整理,就需要用到列表的另一種排序方式
- sort正序排序sort() 許多python初學(xué)者,對sort()方法比較糊涂.有的時候會需要一個排序好的列表,而又想保存原有未排序列表,他們會這么操作:
a = [5,7,6,3,4,1,2] b = a.sort() print( b) # None
這個時候問題出現(xiàn)了,變量b得到的是一個空值.那么想要得到排序好的列表,又想保留原列表怎么辦呢?列表sorted()方法可以幫你實現(xiàn).
sorted()即可以保留原列表,又能得到已經(jīng)排序好的列表sorted()操作方法如下:
a = [5,7,6,3,4,1,2] b = sorted(a) print('sorted(a)',a) # [5, 7, 6, 3, 4, 1, 2] print('b = sorted(a)',b) # [1, 2, 3, 4, 5, 6, 7]
Tuple 另一種有序列表叫元組: tuple和list非常類似,但是tuple一旦初始化就不能修改,例如:
tuple =[1,2,3,4] tuple.append(5) Traceback (most recent call last): File "<pyshell#59>", line 1, in <module> tuple.append(5) AttributeError: 'tuple' object has no attribute 'append'
現(xiàn)在,這個tuple不能變了,它也沒有append(),insert()這樣的方法.其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1]
不可變的tuple有什么意義?
因為tuple不可變,所以代碼更安全.如果可能,能用tuple代替list就盡量用tuple.
tuple的陷阱:當(dāng)你定義一個tuple時,在定義的時候,tuple的元素就必須被確定下來,比如:
如果要定義一個空的tuple,可以寫成():但是,要定義一個只有1個元素的tuple,如果你這么定義:定義的不是tuple,是1這個數(shù)!這是因為括號()既可以表示tuple,又可以表示數(shù)學(xué)公式中的小括號,這就產(chǎn)生了歧義,因此,Python規(guī)定,這種情況下,按小括號進行計算,計算結(jié)果自然是1.
所以,只有1個元素的tuple定義時必須加一個逗號,來消除歧義:
Python在顯示只有1個元素的tuple時,也會加一個逗號,以免你誤解成數(shù)學(xué)計算意義上的括號.'可變的’tuple:
>>> tuple = (1,2,3,[4,5,6]) >>> tuple (1, 2, 3, [4, 5, 6]) >>> tuple[3][0]=1 >>> tuple (1, 2, 3, [1, 5, 6]) >>> tuple[3][1]=2 >>> tuple[3][2]=3 >>> tuple (1, 2, 3, [1, 2, 3])
表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素.tuple一開始指向的list并沒有改成別的list,所以,tuple所謂的"不變"是說,tuple的每個元素,指向永遠(yuǎn)不變.即指向’a’,就不能改成指向’b’,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的!
理解了"指向不變"后,要創(chuàng)建一個內(nèi)容也不變的tuple怎么做?那就必須保證tuple的每一個元素本身也不能變.
到此這篇關(guān)于python列表[list]和元組(tuple)詳情的文章就介紹到這了,更多相關(guān)python列表和元組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在ipython notebook中使用argparse方式
這篇文章主要介紹了在ipython notebook中使用argparse方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04在django view中給form傳入?yún)?shù)的例子
今天小編就為大家分享一篇在django view中給form傳入?yún)?shù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07用Python實現(xiàn)數(shù)據(jù)篩選與匹配實例
大家好,本篇文章主要講的是用Python實現(xiàn)數(shù)據(jù)篩選與匹配實例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02Python Unittest根據(jù)不同測試環(huán)境跳過用例的方法
這篇文章主要給大家介紹了關(guān)于Python Unittest如何根據(jù)不同測試環(huán)境跳過用例的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2018-12-12基于數(shù)據(jù)歸一化以及Python實現(xiàn)方式
今天小編就為大家分享一篇基于數(shù)據(jù)歸一化以及Python實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07