摘要:聲明一個(gè)很簡(jiǎn)單,只需盡量不要將變量名起為關(guān)鍵字。有如下基本方法在的末尾添加一個(gè)元素,并且返回將另一個(gè)的對(duì)象添加到尾部,返回值為。返回值為刪掉的元素。為一個(gè)表達(dá)式,傳入當(dāng)前元素,返回時(shí)依據(jù)德關(guān)鍵字。
1.list
聲明一個(gè)list很簡(jiǎn)單,只需list1=[](盡量不要將變量名起為關(guān)鍵字list)。
list有如下基本方法:
(1)append(x) 在list的末尾添加一個(gè)元素x,并且返回None
list1 = [1, 2, 3, 4] r = list1.append(5) print(list1, r) #[1, 2, 3, 4, 5] None
(2)extend(iterable) 將另一個(gè)iterable的對(duì)象添加到list尾部,返回值為None。
list1 = [1, 2, 3, 4] r = list1.extend([5, 6, 7, 8]) print(list1, r) #[1, 2, 3, 4, 5, 6, 7, 8] None
(3)insert(i,x) 將元素x插入到索引i處,返回值為None。
list1 = [1, 2, 3, 4] r = list1.insert(4, 5) print(list1, r) #[1, 2, 3, 4, 5] None
(4)remove(x) 刪除值為x的元素(值而非索引),刪除成功返回None,若沒(méi)有x則報(bào)錯(cuò)
list1 = [1, 2, 3, 4] r = list1.remove(3) print(list1, r) #[1, 2, 4] None list1 = [1, 2, 3, 4] r = list1.remove(5) print(list1, r) Traceback (most recent call last): File "E:/Programs/python/data-structure/list-demo.py", line 2, inr = list1.remove(5) ValueError: list.remove(x): x not in list
(5)pop([i]) 如果傳入?yún)?shù)i,刪除索引i處元素。如果不傳參,刪除尾部的元素。返回值為刪掉的元素。
list1 = [1, 2, 3, 4] r = list1.pop(3) print(list1,r) #[1, 2, 3] 4
(6)clear() 清空數(shù)組所有元素,返回None。相當(dāng)于list1[:]=[]以及del list1[:]
list1 = [1, 2, 3, 4] r = list1.clear() print(list1, r) #[] None
(7)count(x) 返回x在list中出現(xiàn)的次數(shù)
list1 = [1, 2, 3, 4, 1, 2, 3, 4, 2, 4] r = list1.count(4) print(r) #3
(8)sort(key=None, reverse=False) 默認(rèn)從小到大,如果reverse設(shè)為T(mén)rue則為從大到小。key為一個(gè)lambda表達(dá)式,傳入當(dāng)前元素,返回sort時(shí)依據(jù)德關(guān)鍵字。
list1 = [{"age": 20}, {"age": 15}, {"age": 18}, {"age": 25}] list1.sort(key=lambda stu: stu["age"]) print(list1)
(9)reverse() 反轉(zhuǎn)數(shù)組
list1 = [1, 2, 3, 4, 5] list1.reverse() print(list1) #[5, 4, 3, 2, 1]
(10)copy() 淺拷貝數(shù)組,相當(dāng)于list1[:]
list1 = [1, 2, 3, 4, {"name": "John"}] list2 = list1.copy() list2[4]["name"] = "Mike" print(list1 is list2) print(list1) print(list2) # False [1, 2, 3, 4, {"name": "Mike"}] [1, 2, 3, 4, {"name": "Mike"}]
以上為list常用方法。
list可以作為棧使用。
>>> stack = [3, 4, 5] >>> stack.append(6) >>> stack.append(7) >>> stack [3, 4, 5, 6, 7] >>> stack.pop() 7 >>> stack [3, 4, 5, 6] >>> stack.pop() 6 >>> stack.pop() 5 >>> stack [3, 4] (官網(wǎng)代碼)
也可以作為隊(duì)列使用,但是需要導(dǎo)入collections包的deque
>>> from collections import deque >>> queue = deque(["Eric", "John", "Michael"]) >>> queue.append("Terry") # Terry arrives >>> queue.append("Graham") # Graham arrives >>> queue.popleft() # The first to arrive now leaves "Eric" >>> queue.popleft() # The second to arrive now leaves "John" >>> queue # Remaining queue in order of arrival deque(["Michael", "Terry", "Graham"])
初始化list的小竅門(mén):
list1 = [x ** 2 for x in range(10)] print(list1) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81] list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] list2 = [num for sub in list1 for num in sub] print(list1) print(list2) #[[1, 2, 3], [4, 5, 6], [7, 8, 9]] [1, 2, 3, 4, 5, 6, 7, 8, 9] list1 = [(x, y) for x in range(1, 4) for y in range(x, 4)] print(list1) #[(1, 1), (1, 2), (1, 3), (2, 2), (2, 3), (3, 3)] matrix = [[1, 2, 4, 5], [5, 6, 7, 8], [9, 10, 11, 12]] r = [[row[i] for row in matrix] for i in range(4)] print(r) #[[1, 5, 9], [2, 6, 10], [4, 7, 11], [5, 8, 12]](官網(wǎng)案例)
del語(yǔ)句:del arr[i]刪除索引為i的元素,del arr[:]為清空數(shù)組,del arr[i:j]為清空i到j(luò)之前的元素,包括i不包括j。
遍歷方式
list1 = [1, 2, 3, 4, 5, 6, 7, 8] for i in range(len(list1)): print(i, list1[i]) for i, val in enumerate(list1): print(i, val)2.tuple
tuple1 = () 此時(shí)tuple1為tuple類(lèi)型
tuple2 = (1) 此時(shí)tuple2非tuple類(lèi)型,而是int類(lèi)型
tuple3 = 1, 或者 tuple3 = (1,) 此時(shí)tuple3為tuple類(lèi)型
tuple1 = () tuple2 = (1) tuple3 = 1, tuple4 = 1, 2, 3, 4 tuple5 = tuple4, 5 print(type(tuple1)) print(type(tuple2)) print(type(tuple3)) print(type(tuple4)) print(tuple5) #((1, 2, 3, 4), 5)
tuple可以使用切片,但是tuple不可變,不能給其中元素重新賦值。
tuple1 = 1, 2, 3, 4, 5, 6 tuple1[2] = 5 #Traceback (most recent call last): File "E:/Programs/python/data-structure/list-demo.py", line 2, intuple1[2] = 5 TypeError: "tuple" object does not support item assignment
可以通過(guò)以下代碼實(shí)現(xiàn)兩個(gè)變量值的互換
x = 5 y = 6 x, y = y, x print(x) print(y) #6 53.set
執(zhí)行set1={}這種語(yǔ)句,set1的類(lèi)型為dict而非set
set1 = {} print(type(set1)) #
當(dāng)用set構(gòu)造函數(shù)創(chuàng)建set時(shí)要注意以下的問(wèn)題:
set1 = set("abcedfg") print(set1) #{"f", "c", "g", "e", "b", "a", "d"}
set是無(wú)序的,并且其中沒(méi)有重復(fù)元素,因此可以通過(guò)set實(shí)現(xiàn)去重。
list1 = [1, 1, 2, 3, 4, 4, 5, 6, 6, 7] print(list(set(list1))) #[1, 2, 3, 4, 5, 6, 7]
set可以進(jìn)行求交集,并集,差集,以及找出只存在于其中一個(gè)的元素集合
a = set("abracadabra") b = set("alacazam") print(a) print(b) print(a & b) print(a | b) print(a - b) print(a ^ b) # {"r", "b", "a", "c", "d"} {"z", "a", "m", "c", "l"} {"c", "a"} {"z", "r", "b", "a", "m", "c", "d", "l"} {"r", "b", "d"} {"z", "m", "r", "b", "d", "l"}4.dict
初始化dict,需要將key與value都加上引號(hào):
dict1 = {"name": "Jero", "age": 20}
獲取可采用更簡(jiǎn)單的方法
dict2 = dict(name="Jero", age=20)
遍歷dict時(shí),有如下選擇
dict1 = {"name": "Jero", "age": 20, "gender": "male"} for i in dict1: print(i, dict1[i]) #name Jero age 20 gender male for val in dict1.values(): print(val) #Jero 20 male for key, val in dict1.items(): print(key, val)
運(yùn)算:
list1 = [1, 2, 3] list2 = [4, 5, 6] print(list1 * 2) list1 += list2 print(list1) #[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44585.html
摘要:本文是通過(guò)廖雪峰的網(wǎng)站學(xué)習(xí)而整理的真的是很好的教程,省得我花錢(qián)買(mǎi)書(shū)了,然后我沒(méi)有去再整理總結(jié)語(yǔ)法,而是直接通過(guò)寫(xiě)出代碼段來(lái)體現(xiàn)自己的學(xué)習(xí),也方便以后的快速?gòu)?fù)習(xí)回顧。 不想再像以前那樣,什么都從頭開(kāi)始學(xué)習(xí)語(yǔ)法、總結(jié)語(yǔ)法,這樣反而會(huì)過(guò)分糾結(jié)于語(yǔ)法,耽誤了開(kāi)發(fā),畢竟語(yǔ)言的主要屬性是工具,次要的屬性是語(yǔ)言本身。 所以還是先熟練使用語(yǔ)言去進(jìn)行開(kāi)發(fā),等足夠熟悉了,再去研究語(yǔ)言本身(編譯原理……)。...
摘要:布爾值布爾值和布爾代數(shù)的表示完全一致,一個(gè)布爾值只有兩種值的數(shù)據(jù)類(lèi)型可以通過(guò)內(nèi)置的函數(shù)查詢(xún),例如還可以用來(lái)判斷和的區(qū)別在于不會(huì)認(rèn)為子類(lèi)是一種父類(lèi)類(lèi)型。會(huì)認(rèn)為子類(lèi)是一種父類(lèi)類(lèi)型。基本功能是進(jìn)行成員關(guān)系測(cè)試和刪除重復(fù)元素。 ...
摘要:元素的獲取與一致,即即可。中的是唯一的不可變對(duì)象。若不存在該則返回。是一個(gè)有序且不重復(fù)的數(shù)據(jù)集合。創(chuàng)建創(chuàng)建時(shí)重復(fù)的元素將被自動(dòng)刪除。添加元素刪除元素若元素不存在,則會(huì)報(bào)錯(cuò)誤。 Python的數(shù)據(jù)集合有四種,即list,tuple,dict,set 列表,List List是Python中一種有序的可變的數(shù)據(jù)集合。它的元素可以被添加或則刪除。List的表示方法是用一個(gè)[]將元素包含起來(lái),...
摘要:元組本質(zhì)是一種有序集合和相似元組是不可變的用創(chuàng)建其中類(lèi)型可以不同如果一個(gè)元組中只有一個(gè)元素,在這個(gè)元素后面加一個(gè)逗號(hào)來(lái)消除歧義修改元組表面上看,的元素改變了,但實(shí)際上變得不是的元素,是的元素刪除被直接刪除數(shù)據(jù)類(lèi)型轉(zhuǎn)換字典字典中的必須唯一值必 元組 tuple 本質(zhì)是一種有序集合 和list相似 元組是不可變的 用()創(chuàng)建 其中類(lèi)型可以不同 如果一個(gè)元組中只有一個(gè)元素,在這個(gè)元素后面加...
摘要:支持轉(zhuǎn)換為類(lèi)型的,僅有,其他類(lèi)型均不支持。如果中含有正負(fù)號(hào)數(shù)字和小數(shù)點(diǎn)以外的字符,則不支持轉(zhuǎn)換。轉(zhuǎn)換時(shí),會(huì)自動(dòng)添加虛數(shù)部分并以表示。轉(zhuǎn)換會(huì)直接完全轉(zhuǎn)換。轉(zhuǎn)換列表,會(huì)取每個(gè)字節(jié)的十進(jìn)制值并組合成列表轉(zhuǎn)換為比較簡(jiǎn)單。 int 支持轉(zhuǎn)換為 int 類(lèi)型的,僅有 float、str、bytes,其他類(lèi)型均不支持。 float -> int 會(huì)去掉小數(shù)點(diǎn)及后面的數(shù)值,僅保留整數(shù)部分。 int(-...
閱讀 476·2021-10-09 09:57
閱讀 483·2019-08-29 18:39
閱讀 821·2019-08-29 12:27
閱讀 3036·2019-08-26 11:38
閱讀 2674·2019-08-26 11:37
閱讀 1300·2019-08-26 10:59
閱讀 1387·2019-08-26 10:58
閱讀 996·2019-08-26 10:48