1.語法:
zip(iterable, ...)
引數說明:
iterable,...—— 乙個或多個迭代器;
zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。
如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 * 號操作符,可以將元組解壓為列表。
zip() 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的物件,這樣做的好處是節約了不少的記憶體。
我們可以使用 list() 轉換來輸出列表。
如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 * 號操作符,可以將元組解壓為列表。
2.返回值:
3.用法:(python3環境)
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 返回乙個物件
>>> zipped
>>> list(zipped) # list() 轉換為列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # 元素個數與最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zipped = zip(a,b)
>>> a1, a2 = zip(*ziped) # 與 zip 相反,zip(*) 可理解為解壓,返回二維矩陣式
>>> a1
(1, 2, 3)
>>> a2
(4, 5, 6)
>>>c = ('a','b','c')
>>>d = (1,2,3)
>>>aa = zip(c,d)
>>>list(aa)
[('a', 1), ('b', 2), ('c', 3)]
4.關於用』*『解包
1.帶*號的表示式獲取序列剩餘部分
>>> a,b,*c = 1,2,3,4,5
>>> a
1>>> b
2>>> c
[3, 4, 5]
2.帶*號的表示式獲取序列中間部分
>>> a,*b,c = 1,2,3,4,5
>>> a
1>>> b
[2, 3, 4]
>>> c
53.帶*號的表示式獲取序列前面部分
>>> *a,b,c = 1,2,3,4,5
>>> a
[1, 2, 3]
>>> b
4>>> c
54.巢狀解包
>>> (a,b),(c,d) = (1,2),(3,4)
>>> a
1>>> b
2>>> c
3>>> d
4>>> a,b
(1, 2)
>>> a,b,c,d
(1, 2, 3, 4)
1.語法:
map(func, iterable, ...)
map()會根據提供的函式對指定序列做對映。
第乙個引數 func 是函式名字,它把函式 func 依次作用在後面每個 iterable 的每個元素上,然後並返回執行結果。
2.返回值:
3.用法:(python3環境)
>>>def square(x) : # 計算平方數
... return x ** 2
...
>>> m = map(square, [1,2,3,4,5]) # 計算列表各個元素的平方
>>> list(m)
[1, 4, 9, 16, 25]
>>> m = map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函式
>>> list(m)
[1, 4, 9, 16, 25]
# 提供了兩個列表,對相同位置的列表資料進行相加
>>> m = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
>>> list(m)
[3, 7, 11, 15, 19]
4.map()的特殊情況:函式是none
如果函式是 none,自動假定乙個『identity』函式,這時候就是模仿 zip()函式,
>>>l=[1,2,3,4]
>>>x=map(none,l)
>>>print(x)
[1,2,3,4]
當有多個列表時,相同位置的元素歸併到乙個元組。如:
>>> print map(none, [4,5,6],[3,2,1])
[(4, 3), (5, 2), (6, 1)]
列表長度不一致時,會用none補足,如:
>>> print map(none, [4,5,6],[3,2,1,0])
[(4, 3), (5, 2), (6, 1),(none,0)]
在 python3中,由於map()返回是乙個迭代器,所以在這種情況下,map()返回的這個物件其實是不可呼叫的
>>> m = map(none,[1,2,3,4])
>>> m
>>> list(m)
traceback (most recent call last):
file "", line 1, in typeerror: 'nonetype' object is not callable
Python中的Zip 函式
zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。zip 語法 zip iterable,引數說明 返回元組列表。以下例項展示了 zip 的使...
Python中的zip函式
定義 zip iterable,zip 是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中對應的元素打包成乙個個tuple 元組 然後返回由這些tuples組成的list 列表 若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。利用 號操作符,可以將list...
python中的zip函式
先貼上原始碼 zip iter1 iter2 zipobject return a zip object whose next method returns a tuple where the i th element comes from the i th iterable argument.th...