Pythony元組 字典以及函式

2021-08-20 06:08:22 字數 2689 閱讀 3321

元組與字串類似,下標索引從0開始,可以進行擷取,組合等。

訪問元組:元組可以使用下標索引來訪問元組中的值。

修改元組:元組中的元素值是不允許修改的,但我們可以對元組進行連線組合:tup3 = tup1 + tup2;

tuple1=tuple(list) :    列表轉換為元組。

刪除元組:元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組。

元組運算子、函式都與列表相同。

字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中。

鍵必須是唯一的,但值則不必。

字典內建函式:

len(dict)   :計算字典元素個數,即鍵的總數。

str(dict)    :輸出字典,以可列印的字串表示。

type(variable)   :返回輸入的變數型別,如果變數是字典就返回字典型別。

字典內建方法:

函式簡單規則:

任何傳入引數和自變數必須放在圓括號中間,圓括號之間可以用於定義引數。

函式的第一行語句可以選擇性地使用文件字串—用於存放函式說明。

函式內容以冒號起始,並且縮排。

return [表示式] 結束函式,選擇性地返回乙個值給呼叫方。不帶表示式的return相當於返回 none。

語法:def 函式名(引數列表):   函式體

引數傳遞:在 python 中,型別屬於物件,變數是沒有型別的

可更改(mutable)與不可更改(immutable)物件:

不可變型別:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成乙個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。

可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函式的引數傳遞:

不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另乙個複製的物件,不會影響 a 本身。

可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響

python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。

python 傳不可變物件例項:

例項中有 int 物件 2,指向它的變數是 b,在傳遞給 changeint 函式時,按傳值的方式複製了變數 b,a 和 b 都指向了同乙個 int 物件,在 a=10 時,則新生成乙個 int 值物件 10,並讓 a 指向它

傳可變物件例項:可變物件在函式裡修改了引數,那麼在呼叫這個函式的函式裡,原始的引數也被改變了。

引數(以下是呼叫函式時可使用的正式引數型別):

必需引數

關鍵字引數

預設引數

不定長引數

必需引數:必需引數須以正確的順序傳入函式。呼叫時的數量必須和宣告時的一樣。呼叫printme()函式,你必須傳入乙個引數,不然會出現語法錯誤

關鍵字引數:

關鍵字引數和函式呼叫關係緊密,函式呼叫使用關鍵字引數來確定傳入的引數值。

使用關鍵字引數允許函式呼叫時引數的順序與宣告時不一致,因為 python 直譯器能夠用引數名匹配引數值。

預設引數:呼叫函式時,如果沒有傳遞引數,則會使用預設引數。

匿名函式:

python 使用 lambda 來建立匿名函式。

所謂匿名,意即不再使用 def 語句這樣標準的形式定義乙個函式。

lambda 只是乙個表示式,函式體比 def 簡單很多。

lambda的主體是乙個表示式,而不是乙個**塊。僅僅能在lambda表示式中封裝有限的邏輯進去。

lambda 函式擁有自己的命名空間,且不能訪問自己引數列表之外或全域性命名空間裡的引數。

雖然lambda函式看起來只能寫一行,卻不等同於c或c++的內聯函式,後者的目的是呼叫小函式時不占用棧記憶體從而增加執行效率。

語法:lambda [arg1 [,arg2,.....argn]]:expression

return語句:return [表示式] 語句用於退出函式,選擇性地向呼叫方返回乙個表示式。不帶引數值的return語句返回none。

變數作用域:

python 中,程式的變數並不是在哪個位置都可以訪問的,訪問許可權決定於這個變數是在**賦值的。

變數的作用域決定了在哪一部分程式可以訪問哪個特定的變數名稱。python的作用域一共有4種,分別是:

l (local) 區域性作用域

e (enclosing) 閉包函式外的函式中

g (global) 全域性作用域

b (built-in) 內建作用域

以 l –> e –> g –>b 的規則查詢,即:在區域性找不到,便會去區域性外的區域性找(例如閉包),再找不到就會去全域性找,再者去內建中找。

全域性變數和區域性變數:

定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。

區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。

global 和 nonlocal關鍵字:

當內部作用域想修改外部作用域的變數時,就要用到global和nonlocal關鍵字了。

字典元組函式04

a 1,2,3 b a是將a的位址給了b,位址相同。b a 是將a的值給了b,b重新建立列表,位址不同 列表遍歷 for num in list print num for index in range 0,len a print a index i 0while iprint a i i 1 ev...

Python元組 字典

t1 a 1,2,3 t2 b 4,5,6 元組的主要缺點就是資料的可讀性差,當我們沒有給資料分配名字時,即沒有像symbol,num1,num2,num3 t1這種 時,我們不會知道t1元組裡的第乙個值代表symbol,第二個值代表num1 我們訪問元組時也只能是類似t1 1 這樣,不能知道資料的...

元組,集合,字典

列表 列表分片後產生的是新的列表,可通過id來判斷資料是否是乙份 l 1,2,3,4,5,6 ll l lll l print id l print id ll print id lll 1468952644296 1468952644232 1468952644296淺拷貝深拷貝區別 深拷貝需要使...