Python-圖文課件7_第1頁
Python-圖文課件7_第2頁
Python-圖文課件7_第3頁
Python-圖文課件7_第4頁
Python-圖文課件7_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第七章Tuple,List,Dict數(shù)據(jù)結構集合結構具有某種特定性質的事物的總體,具有無序性和確定性線性結構相比集合結構,線性結構是有序的樹形結構就像是把現(xiàn)實中一棵樹倒過來一樣圖狀結構多對多的關系Tupletuple1 = (1, 3, 5, 7, 9)線性結構小括號創(chuàng)建字符串其實跟 Tuple 非常類似切片可正向取也可以反向取正向取下面從0開始,反向從-1開始可以取單個元素可以取連續(xù)元素可以固定間隔取元素tuple1 = (1, 3, 5, 7, 9)print(tuple12) # 取第三個元素而不是第二個print(tuple1-1) # 取最后一個元素print(tuple10:3)

2、# 取前三個元素print(tuple13:) # 取第四個以及之后的元素print(tuple1:-1) # 實際上是倒序輸出print(tuple10:3:2) # 取前三個元素Tupletuple1 = (1, 3, 5, 7, 9)tuple2 = (2, 4, 6, 8)tuple3 = tuple1 + tuple2print(tuple3)tuple4 = tuple1 * 2print(tuple4)修改Tuple 本身是不可修改的要修改只能創(chuàng)建一個新的 Tuple 來實現(xiàn)遍歷Tuple 和后面的 List 和 Dict 都是可迭代對象,所以都可以用 for 遍歷也可以使用 w

3、hile 循環(huán)用下標遍歷# for 循環(huán)遍歷for item in tuple1: print(fitem , end=) # while 循環(huán)遍歷index = 0 # 下標while index len(tuple1): print(ftuple1index , end=) index += 1Tupletuple1 = (1, 3, 5, 7, 9)if 3 in tuple1: print(We found 3!)else: print(No 3!)查找使用 in 來判斷元素是否存在We found 3!Listlist1 = 1, 2, 3, 4, 5線性結構中括號創(chuàng)建可以原位修改,

4、比 Tuple 更靈活大部分對 Tuple 的操作都可以應用在 List 上添加append 尾部追加extend 可以追加另一個 Listinsert 可以在指定位置插入# 下面是一種標準的錯誤做法# list15 = 6# 這樣會報IndexError# 下面才是正確做法list1.append(6)print(list1)# extend 和 insertlist2 = 8, 9, 10, 11list1.extend(list2)print(list1)list1.insert(0, 8888)print(list1)Listlist1 = 1, 2, 3, 4, 5del list1

5、1print(list1) # 2 3 4 5print(list1.pop()print(list1) # 2 3 4list1.remove(2)print(list1) # 3 4刪除del 操作符pop 方法remove 方法修改直接使用下標訪問修改在遍歷中修改是安全的list1 = 1, 2, 3, 4, 5# 這樣不能修改內容,,因為 item 是是一個副本for item in list1: item += 1print(list1) # 依舊是1, 2, 3, 4, 5# 我們需要訪問原來的 Listfor index, item in enumerate(list1): li

6、st1index += 1 # 這樣訪問是安全的 if index = 3: list1.append(6) # append也是安全的,添加的6也會被遍歷print(list1) # 輸出是2, 3, 4, 5, 6, 7Listlist1 = 1, 2, 3, 4, 5list1.reverse()print(list1)list1.sort()print(list1)list1.sort(reverse=True)print(list1)排序和翻轉原位修改如果 sort 接收了一個 True 參數(shù),那么它會從大到小排序推導式簡潔高效可讀性高list1 = for i in range(1

7、01): if i%2 = 0: list1.append(i)# 現(xiàn)在 list1 含有 0-100 中所有偶數(shù)list1 = i for i in range(101) if i%2 = 0 # 和上述寫法的效果等價Dictzergling = attack: 5, speed: 4.13, price: 50print(zerglingprice)集合結構有 key 和 value,具有無序性key 是唯一的,value 可以重復查找速度快訪問用 key 作為索引in 可以判斷 key 是否存在get 方法或者 defaultdict 可以在不存在的時候返回默認值if attack in

8、 zergling: print(zerglingattack)print(zergling.get(attack)from collections import defaultdictzergling = defaultdict(None)zerglingattack = 5print(zerglingarmor)Dictzerglingspeed = 5.57修改直接賦值即可添加和變量賦值類似,直接賦值給不存在的 key 即可也可以使用 setdefault 方法zerglingtargets = ground # zergling中并沒有targets這個key!zergling = a

9、ttack: 5, speed: 4.13, price: 50print(zergling.setdefault(targets, ground) # 不存在targets這個key,因此賦值為groundprint(zergling.setdefault(speed, 5.57) # 存在speed這個key,因此什么都不做Dictdel zerglingattackzergling.popitem()刪除del 刪除popitem 刪除最后一次插入元素添加keys 和 values 方法分別獲取所有的鍵和值用于遍歷也可以用 items 來同時遍歷遍歷的過程中不能添加和刪除,但是可以修改已

10、有的值zergling = attack: 5, speed: 4.13, price: 50print(zergling.keys()print(zergling.values()for key, value in zergling.items(): print(fkey=key, value=value)dict_keys(attack, speed, price)dict_values(5, 4.13, 50)key=attack, value=5key=speed, value=4.13key=price, value=50嵌套用于表示復雜對象三種類型可以相互嵌套訪問元素的時候一層一層訪問carrier = cost: mineral: 350, gas: 250, supply: 6, build_time: 86 , type:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論