python中的組合數(shù)據(jù)類型、函數(shù)詳解
python的組合數(shù)據(jù)類型
python里有三種組合數(shù)據(jù)類型:列表、元組和字典。列表上一篇博客我已經(jīng)介紹過了。
1、元組
元組和列表是比較相似的,可以存放多種數(shù)據(jù)類型,只是不能進行刪除、添加元素等操作。元組使用形式:
(元素1,元素2,元素3...)
元組類型用tuple表示,可以用tuple()創(chuàng)建一個空的元組或者進行強制類型轉(zhuǎn)換。
2、字典
字典類型也是與列表相似,存放多種數(shù)據(jù)類型,但是以鍵值對的方式存放:
{鍵1:值1,鍵2:值2,鍵3:值3,...}
字典中鍵必須是獨一無二的,不能隨意修改,因此鍵的數(shù)據(jù)類型不能是列表和字典;值可以與相同的,可以是任意數(shù)據(jù)類型。字典數(shù)據(jù)類型用dict表示,可以用dict()表示一個空的字典。
a=dict()#創(chuàng)建一個空字典 a[1]="張三"#創(chuàng)立一個鍵為1,值是張三的鍵值對 print(a[1])#打印a[1]鍵值對
1、字典類型的方法:
.clear():刪除字典中元素,得到一個空字典。若要刪除整個字典可以使用保留字del。如del a。
.get(參數(shù)1,參數(shù)2):查詢字典中鍵為參數(shù)1的值,若查找成功則返回鍵對應的值;若失敗則返回參數(shù)2,如果沒輸入?yún)?shù)2,則返回none。
.keys():獲得字典中所有鍵的信息。
.value():獲得字典中所有的值信息。
.item():獲取字典中所有的鍵值對。
.pop(參數(shù)):刪除字典中鍵為參數(shù)的鍵值對,同時返回這個鍵值對的值。
2、字典的遍歷:

之前的博客講過,print()函數(shù)中有一個默認參數(shù)end="\n"用來換行,這里我用end=""表示不換行,用end="\t"表示縮進。
3、數(shù)據(jù)的維度
在python中列表可以表示一維和二維的數(shù)據(jù),字典可以表示高維的數(shù)據(jù)。
4、項目案例:學生投票系統(tǒng)
l=[] #創(chuàng)建一個列表用于存儲學生姓名
while True:
name=input("請輸入投票的名字:")
if name!="結(jié)束":
l.append(name)
else:
break #while循環(huán)來統(tǒng)計投票直到輸入結(jié)束
b=dict() #創(chuàng)建一個空的字典
for c in l:
b[c]=b.get(c,0)+1 #依次遍歷列表中的名字,每出現(xiàn)一次,在字典中的值加一
print(b) #輸出字典函數(shù)
函數(shù)相當于為了實現(xiàn)特定功能而編寫的一個小工具,避免了每次實現(xiàn)該功能都要重復寫代碼。前面用過的print()是python已經(jīng)寫好的內(nèi)置函數(shù)。我們也可以自定義新的函數(shù),形式如下:
def 函數(shù)名(參數(shù)):
代碼塊
return 返回值1、形參與實參:
定義函數(shù)時的參數(shù)稱之為形參,調(diào)用函數(shù)時輸入的函數(shù)稱之為實參。
2、默認參數(shù):
定義函數(shù)時給形參賦的值。這樣調(diào)用函數(shù)的時候,如果沒給形參賦值,函數(shù)會使用默認參數(shù);如果給這個形參賦了值,會覆蓋默認參數(shù)。
3、可變參數(shù):
不確定函數(shù)中需要接受的參數(shù)個數(shù)時,可以使用可變參數(shù),可變參數(shù)會以元組的數(shù)據(jù)類型來接受參數(shù)。正因為不確定參數(shù)的個數(shù),可變參數(shù)必須要放在必填參數(shù)的右邊,確保必填參數(shù)接收完數(shù)據(jù),再將剩下的數(shù)據(jù)傳給可變參數(shù),形式:*參數(shù)。
4、關鍵字參數(shù):
關鍵字參數(shù)和可變參數(shù)類似,區(qū)別在于以字典類型來存儲接收到的數(shù)據(jù),因此傳遞給關鍵字參數(shù)的數(shù)據(jù)需要包含鍵和值,鍵和值用等號連接。使用形式:**參數(shù)。
5、變量作用范圍可能產(chǎn)生的問題:
函數(shù)中定義的變量為局部變量。①如果函數(shù)中沒有定義和函數(shù)外部定義的全局變量a,函數(shù)中可以正常使用全局變量a。②如果函數(shù)內(nèi)部和外部都定義了變量a,但是函數(shù)內(nèi)部先定義局部變量再使用,會正常使用局部變量a。③如果函數(shù)內(nèi)部和外部同時定義了變量a,而且函數(shù)先使用變量a,再去定義一個局部變量a,這時運行代碼會報錯a未被定義:

原因:
Python 中變量的作用域遵循LEGB 原則,對于全局變量(Global)和函數(shù)局部變量(Local):
①函數(shù)內(nèi)未定義同名局部變量時,會向上查找全局變量;
②函數(shù)內(nèi)定義了同名局部變量時,該變量會被標記為局部變量,且 Python沒有 “變量提升” 機制(和 JavaScript 不同),必須先定義再使用,否則報錯。
6、global聲明全局變量
上面變量變量作用范圍的問題,其實也是因為雖然局部變量和全局變量同名,但在內(nèi)存使用的不是同一片空間。在函數(shù)內(nèi)部使用global聲明和全局變量a同名的變量,此時局部變量和全局變量a占用同一片存儲空間,在函數(shù)內(nèi)部對a進行修改,外部的全局變量a也會隨之改變。
7、導入其他模塊的函數(shù)
如果自己不想寫,或者函數(shù)很復雜,可以導入他人已經(jīng)寫好的函數(shù),一般在文件開頭導入,有兩種方式:
①導入文件:import 文件名
調(diào)用方法:文件名.函數(shù)()
這種方法相當于在文件首行導入了其他文件的全部代碼,執(zhí)行時,被導入文件的代碼會順序執(zhí)行,跳過函數(shù)部分,當調(diào)用函數(shù)時,函數(shù)才會被使用,相當于把兩個文件拼接在一起。
②導入文件中的函數(shù):
導入文件中指定函數(shù):from 文件名 impact 函數(shù)名
導入文件中全部函數(shù):from 文件名 impact *
調(diào)用方法:函數(shù)名()
給導入的函數(shù)/文件設置別名:from 文件名 impact 函數(shù)名 as 新的函數(shù)名
impact 文件名 as 新的模塊名
8、_ _name_ _屬性
這玩意用來獲得當前文件的名稱,如果位于主文件會返回“_ _main_ _",如果位于次文件(導入的文件)會返回導入的文件名。此屬性一般用來測試當前文件是不是主文件。
9、lambda匿名函數(shù)
用于定義簡單的函數(shù),且可以作為形參。
使用形式:
函數(shù)名=lambda 參數(shù):函數(shù)內(nèi)代碼
到此這篇關于python中的組合數(shù)據(jù)類型、函數(shù)詳解的文章就介紹到這了,更多相關python組合數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python 在OpenCV里實現(xiàn)仿射變換—坐標變換效果
這篇文章主要介紹了Python 在OpenCV里實現(xiàn)仿射變換—坐標變換效果,本文通過一個例子給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Python自動調(diào)整PPT文本框內(nèi)容防止溢出的代碼實現(xiàn)
在自動化處理PPT時,文本框內(nèi)容溢出是一個常見問題,本文將分享一個Python腳本,通過計算文本框容量自動截斷文本并添加省略號,確保內(nèi)容適配文本框尺寸,代碼基于python-pptx庫,適用于批量處理PPT模板,需要的朋友可以參考下2025-04-04

