python3學習筆記 zip 函式用法

2022-07-20 10:30:13 字數 1057 閱讀 2652

與python2不同的是,zip傳入可迭代物件,將物件中對應的元素打包成乙個個tuple,返回zip物件。

a=[1,2,3]

b=[4,5,6]

c=['a','b','c','d']

a_b=zip(a,b)

print(a_b)

zip物件是迭代器iterator,可以驗證一下:

from collections import iterator

isinstance(a_b,iterator)

true所以要用list得到預想的結果。

a_b=list(zip(a,b))

a_c=list(zip(a,c))

print(a_b)

print(a_c)

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

[(1, 'a'), (2, 'b'), (3, 'c')]

可以看到a與c長度不一致時,按照長度短的a返回list。 類似,利用*將a_b,a_c, unzip解壓時,返回的也是迭代器,用list得到預期結果。

list(zip(*a_b))

list(zip(*a_c))

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

[(1, 2, 3), ('a', 'b', 'c')]

例子:完成矩陣轉置,

d=[a,b]

list(map(list,zip(*d)))

[[1, 4], [2, 5], [3, 6]]

或者用列表生成式:[ [row[x] for row in d] for x in range(len(d[0]))]

Python3 內建函式 zip

zip 是python的乙個內建函式,它接受一系列可迭代的物件作為引數,將物件中對應的元素按順序組合成乙個tuple,每個tuple中包含的是原有序列中對應序號位置的元素,然後返回由這些tuples組成的list。若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。在所有引數長度相...

Python3學習筆記

最近在起步學python,聚合一下這個過程中蒐集的資源和對一些基本知識做個小總結,語法基於python3,方便以後查詢。python官方文件 不錯的基礎課程 基本語法 演算法 建模 練習 以下是整理常用可能遺忘的基礎點 python3中的輸入是input 獲得使用者輸入的字串 a input ple...

python3學習筆記

redis訊息佇列的使用 coding utf 8 created on tue mar 26 15 58 34 2019 author admin import redis class redisqueue object def init self,name,namespace queue red...