7 基礎知識類 zip 函式

2021-08-30 13:22:04 字數 2664 閱讀 7139

多個元組、列表、字典等舊迭代器組合成新迭代器

1

.壓縮:zip

()函式

zip函式有乙個引數:從迭代器中依次取乙個元組,組成乙個元組。

zip函式有兩個引數:zip

(a,b)函式分別從a和b中取乙個元素組成元組,再次將組成的元組組合成乙個新的迭代器。

(1)維數相同:正常組合對應位置的元素。

(2)維數不同:取兩者中的最小的行列數

應用:a.矩陣點乘 & 相加(對應位置相乘/加)

b.列表元素依次相連

c.⚠️zip反轉字典,使用dict

()函式

print

("-"*20

+"zip()函式的用法"

+"-"*20

)# 1.當zip()函式中只有乙個引數時,zip(iterable)從迭代器中依次取乙個元組,組成乙個元組。

mylist =[1

,2,3

,4]print

(zip

(mylist))#

print

(type

(zip

(mylist)))

# print

(list

(zip

(mylist)))

# [(1,), (2,), (3,), (4,)]

# 2.當zip()函式有兩個引數時,zip(a,b)函式分別從a和b中取乙個元素組成元組,再次將組成的元組組合成乙個新的迭代器。

# a與b的維數相同時,正常組合對應位置的元素。

# 當a與b行或列數不同時,取兩者中的最小的行列數。

m =[[1

,2,3

],[4

,5,6

],[7

,8,9

]]n =[[1

,1,1

],[2

,2,3

],[3

,3,3

]]p =[[1

,1,1

],[2

,2,2

]]# 維數相同

print

(list

(zip

(m, n)))

# [([1, 2, 3], [1, 1, 1]), ([4, 5, 6], [2, 2, 3]), ([7, 8, 9], [3, 3, 3])]

# 維數不同

print

(list

(zip

(m, p)))

# [([1, 2, 3], [1, 1, 1]), ([4, 5, 6], [2, 2, 2])]

print

("-"*20

+"zip()函式的應用"

+"-"*20

)# 矩陣相加減、點乘(for迴圈 + 列表生成式)

# 矩陣的相乘(點乘/點積)

matrix_multi =

[x * y for a, b in

zip(m, n)

for x, y in

zip(a, b)

]print

("矩陣點乘:\n"

, matrix_multi)

# [1, 2, 3, 8, 10, 18, 21, 24, 27]

# 矩陣相加

matrix_add =

[x + y for a, b in

zip(m, n)

for x, y in

zip(a, b)

]print

("矩陣相加:\n"

, matrix_add)

# [2, 3, 4, 6, 7, 9, 10, 11, 12]

# 列表元素依次相連

l =[

'a',

'b',

'c',

'd',

'e',

'f']

print

("列表元素依次相鏈結果:"

,list

(zip

(l[:-1

], l[1:

])))

2

.解壓縮:*

zip(

*iterables)函式

*zip

()函式是zip

()函式的逆過程,將zip物件變成原先組合前的資料。

print

("-"*20

+"*zip(*iterables)函式的應用"

+"-"*20

)# print(list(zip(*(m, n)))) # ([1, 2, 3], [1, 1, 1]) ([4, 5, 6], [2, 2, 3]) ([7, 8, 9], [3, 3, 3])

print(*

zip(m, n)

)m2, n2 =

zip(*(

zip(m, n)))

print

('m2是否是m'

, m ==

list

(m2)

)# true

print

('n2是否是n'

, n ==

list

(n2)

)# true

c 基礎知識7 函式過載

過載函式 含義 c語言中,函式如果重名會報錯。c 則引入了函式過載。編譯器將所有同名函式作為候選者,精確匹配實參 通過預設引數匹配實參 通過預設型別轉換匹配實參等等,尋找到正確的函式 如果匹配到不唯一或匹配不到,則編譯錯誤。本質 通過編譯後生成的obj檔案進行分析,可以看到同名函式在符號表中有不同的...

python基礎知識梳理 7函式

基本內容梳理 1 函式定義,函式名,函式體以及函式的呼叫方式 2 函式的返回值 3 函式的引數 4 函式 動態傳引數 5 命名空間,區域性名稱的載入順序,全域性命名空間,作用域,載入順序 6 函式的巢狀 7 gloabal,nonlcal關鍵字 一 函式的定義,函式名,函式體以及函式的呼叫方式 1 ...

函式基礎知識

1.函式呼叫 注意函式名稱,引數個數,引數資料型別 2.函式定義 def 函式名 引數 函式體return 返回值 函式中也可以直接使用pass,意為什麼也不做,目的是讓程式能夠執行不報錯 python有一點值得注意,返回值可以為多個,例如 d def get weight and height d...