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()傳遞待刪除元素,如果多個元素一樣,默認刪除第一個
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的每個元素,指向永遠不變.即指向’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)文章
利用Python-iGraph如何繪制貼吧/微博的好友關(guān)系圖詳解
這篇文章主要給大家介紹了關(guān)于利用Python-iGraph如何繪制貼吧/微博好友關(guān)系圖的相關(guān)資料,文中顯示介紹了在windows系統(tǒng)下安裝python-igraph的步驟,然后通過示例代碼演示了繪制好友關(guān)系圖的方法,需要的朋友可以參考下。2017-11-11
Linux系統(tǒng)(CentOS)下python2.7.10安裝
這篇文章主要為大家詳細介紹了Linux系統(tǒng)(CentOS)下python2.7.10安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-09
Django框架之中間件MiddleWare的實現(xiàn)
這篇文章主要介紹了Django框架之中間件MiddleWare的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Python While循環(huán)語句實例演示及原理解析
這篇文章主要介紹了Python While循環(huán)語句實例演示及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
python gensim使用word2vec詞向量處理中文語料的方法
這篇文章主要介紹了python gensim使用word2vec詞向量處理中文語料的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python二分法查找算法實現(xiàn)方法【遞歸與非遞歸】
這篇文章主要介紹了python二分法查找算法實現(xiàn)方法,結(jié)合實例形式分析了Python使用遞歸與非遞歸算法實現(xiàn)二分查找的相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
20個Python中正則表達式的應(yīng)用與技巧小結(jié)
正則表達式是一種用來匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,本文我們將探討?Python?中?re?模塊的應(yīng)用和一些技巧,希望可以幫助您更好地理解和利用正則表達式2024-04-04
Python中Pandas庫提供的函數(shù)pd.DataFrame的基本用法
pandas庫中的pd.DataFrame()函數(shù)用于創(chuàng)建一個DataFrame對象,它是一個二維表格數(shù)據(jù)結(jié)構(gòu),每列可以是不同的數(shù)據(jù)類型(數(shù)值、字符串、布爾值等),下面這篇文章主要給大家介紹了關(guān)于Python中Pandas庫提供的函數(shù)pd.DataFrame的基本用法,需要的朋友可以參考下2024-03-03
解決使用Spyder IDE時matplotlib繪圖的顯示問題
這篇文章主要介紹了解決使用Spyder IDE時matplotlib繪圖的顯示問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04

