摘要:注本片文章是個人學(xué)習(xí)總結(jié),內(nèi)容來自簡明教程有序列表是一種保存有序項的數(shù)據(jù)結(jié)構(gòu)。正因為我們可以增加和刪除項,所以我們稱列表是一種可變數(shù)據(jù)類型,也就是說這個類型可以被改變。這稱作綁定名稱到對象。
注:本片文章是個人學(xué)習(xí)總結(jié),內(nèi)容來自《簡明Python教程》
List 有序列表List是一種保存有序項的數(shù)據(jù)結(jié)構(gòu)。
項目列表應(yīng)該使用方括號擴(kuò)起來,以便 Python 能夠理解您正在定義一個列表。一旦創(chuàng)建了列表,你就可以在列表中增加,刪除或者搜索列表中的項 。 正因為我們可以增加和刪除項,所以我們稱列表是一種 可變 數(shù)據(jù)類型,也就是說這個類型可以被改變。
shoplist = ["apple","mango","carrot","banana"] len(shoplist) //4 for item in shoplist: print(item) shoplist.append("rice") shoplist.sort() shoplist[0] = "Google" del shoplist[1]元組tuple
元組用于將多個對象組合在一起。可以將它們近似看作列表,但是沒有列表類提供的許多功能。元組的一個重要特征是,它們和字符串一樣是 不可變的 ,即你不能修改元組。
元組是由一些特殊的項定義的,這些項在一對可選的圓括號中,由逗號隔開。
元組通常用于這種情況,也就是語句或者用戶自定義的函數(shù)可以安全地認(rèn)為值的集合(即,值的元組)不會改變的情況。
zoo = ("Python","Java","JavaScript","php")
==注意:包含0或1個項的元組==一個空的元組是由一堆空的圓括號組成的,例如,myempty = ().
但是對于一個項的元組且必須僅在第一個項的后面用一個括號來指定該元組,比如
myempty = (1,),因為因為如果沒有逗號會造成歧義: a = (1)
>>> a = 2 >>> b = (a,11,22) >>> b (2, 11, 22) >>> a = 3 >>> b (2, 11, 22) >>> c = [1,1] >>> d = (c,22,33) >>> d ([1, 1], 22, 33) >>> c[1] = 4 >>> d ([1, 4], 22, 33)
元組中可以包含變量,變量可以改變,但元組的值不會變,元組中變量的值在里第一次創(chuàng)建就確定了,無法通過變量去改變。字典但是如果你的元組中的變量是一個列表list,那么元組中的值會隨著列表list改變而改變
字典是一種鍵值對集合,鍵必須是唯一的,而且鍵只能用不可變對象,比如字符串,但鍵值沒有多大限制。
d = {key1:value1,key2:value2}
字典的常用方法有del刪除鍵值對,添加鍵值對直接用索引操作符訪問一個鍵并為其賦值,遍歷字典則用items方法。
ab = { "Swaroop": "swaroop@swaroopch.com", "Larry": "larry@wall.org", "Matsumoto": "matz@ruby-lang.org", "Spammer": "spammer@hotmail.com" } ad["addKey"] = "value" del ab["Larry"] for key,value in ad.items(): print("Contact {} at {}".format(key,value)序列
列表list、元組tuple和dict都是序列的一種。
序列的主要特征是:成員測試(例如:in 與 not in 表達(dá)式)和索引操作,這兩種操作讓我們可以直接從序列中提取特定的部分。
序列還有一種特殊的操作叫做切片,切片可以讓我們得到序列的一部分。
shoplist = ["apple","mango","carrot","banana"] name = "swaroop" # 字符串索引 # print("Item 0 is", shoplist[0]) print("Item 1 is", shoplist[1]) print("Item 2 is", shoplist[2]) print("Item 3 is", shoplist[3]) print("Item -1 is", shoplist[-1]) print("Item -2 is", shoplist[-2]) print("Character 0 is", name[0]) # 列表切片 # print("Item 1 to 3 is", shoplist[1:3]) print("Item 2 to end is", shoplist[2:]) print("Item 1 to -1 is", shoplist[1:-1]) print("Item start to end is", shoplist[:]) # 字符串切片 # print("characters 1 to 3 is", name[1:3]) print("characters 2 to end is", name[2:]) print("characters 1 to -1 is", name[1:-1]) print("characters start to end is", name[:])引用
當(dāng)你創(chuàng)建了一個對象,并把它賦值給一個變量時,這個變量只是 引用 了這個對象,變量并不能代表對象自身!因此,你可以把變量名當(dāng)作一個指針,它指向儲存對象的那一塊計算機(jī)內(nèi)存。這稱作綁定名稱到對象。
print("Simple Assignment") shoplist = ["apple", "mango", "carrot", "banana"] # mylist 只是指向同一個對象的另一個別名! mylist = shoplist # 我買下了第一件商品,所以把它從列表中移除 del shoplist[0] print("shoplist is", shoplist) print("mylist is", mylist) # 注意到 shoplist 和 mylist 產(chǎn)生了同樣的輸出 # 輸出的都是沒有 "apple" 的相同列表 # 這驗證了它們都指向著同一個對象 print("Copy by making a full slice") # 通過全切片來獲得一個副本 mylist = shoplist[:] # 移除第一個元素 del mylist[0] print("shoplist is", shoplist) print("mylist is", mylist) # 注意到現(xiàn)在這兩個列表有差異了
輸出:
$ python ds_reference.py Simple Assignment shoplist is ["mango", "carrot", "banana"] mylist is ["mango", "carrot", "banana"] Copy by making a full slice shoplist is ["mango", "carrot", "banana"] mylist is ["carrot", "banana"]
記住:如果你想要獲得列表、或者類似的序列、或更復(fù)雜對象的副本,只要不是像整數(shù)一樣簡單的 對象,你都需要通過切片操作來獲得它的副本。如果你直接把一個變量名賦值給另一個,它們兩個都會引用同一個對象。在賦值時你需要注意這一點,不然可能會造成意想不到的結(jié)果,從而帶來麻煩。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42483.html
摘要:關(guān)于的三個謊言,你一定要清楚。這是的整個知識體系圖譜,對于新手來說,沒必要學(xué)那么多。第四自動化測試一切關(guān)于自動化的東西,似乎都可以滿足,可以滿足大多數(shù)自動化工作,提升工作效率。這都是正常的,千萬別急著否定自己,懷疑自己。 ...
摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...
摘要:屬于前一種,而且日益被用于數(shù)學(xué)計算機(jī)器學(xué)習(xí)和多種數(shù)據(jù)科學(xué)應(yīng)用。近來,由于擁有多個針對機(jī)器學(xué)習(xí)自然語言處理數(shù)據(jù)視覺化數(shù)據(jù)探索數(shù)據(jù)分析和數(shù)據(jù)挖掘的插件,豐富的數(shù)據(jù)科學(xué)生態(tài)體系得到了較大的發(fā)展,甚至有將數(shù)據(jù)科學(xué)社區(qū)化的趨勢。 譯者注:本文的英文原文地址是:Python for Data Science vs Python for Web Development,發(fā)布時間是10月29日。譯者一...
摘要:數(shù)據(jù)分析的發(fā)展方向一般有商業(yè)方向,行業(yè)分析業(yè)務(wù)方向,和機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘方向。機(jī)器學(xué)習(xí)的書籍推薦統(tǒng)計學(xué)習(xí)方法,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí)實戰(zhàn)三本書。 作者:xiaoyu 微信公眾號:Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 上一篇主要分享了博主親身轉(zhuǎn)行數(shù)據(jù)分析的經(jīng)歷: 【從零學(xué)起到成功轉(zhuǎn)行數(shù)據(jù)分析,我是怎么做的?】 本篇繼上一篇將分享轉(zhuǎn)行數(shù)據(jù)分析的一些經(jīng)驗和學(xué)習(xí)方法,看完這篇你將會解...
閱讀 1960·2021-09-07 09:59
閱讀 2525·2019-08-29 16:33
閱讀 3697·2019-08-29 16:18
閱讀 2855·2019-08-29 15:30
閱讀 1684·2019-08-29 13:52
閱讀 2045·2019-08-26 18:36
閱讀 539·2019-08-26 12:19
閱讀 704·2019-08-23 15:23