zip()和*zip()


zip():壓縮

*zip():解壓

zip() 函數:用於將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表,即元組列表

但實際操作中,zip() 返回的是一個對象,在 idle 中並不將它原本的面貌展示出來。如下:

zip(a,b):將a和b中的元素對應組合成元組。結果:(1,4),(2,5),(3,6)。而要想看到這個結果,需用*zip()函數

*zip(a,b):先將a和b中的元素對應組合成元組形成結果,再將這個結果解壓,即 * 表示解壓。但不輸出,需借助print打印出來:

(此語句僅用來查看zip(a,b)的真正面貌,這三個元組之間沒有逗號)

但若先 t = zip(a,b),再print(*t)的話,沒有任何返回值,因為*zip()中的 * 和zip是連用的,不能將它們分開用。而print(*zip(t))是另一種結果,即print(*zip(zip(a,b))):

將 t 即 (1,4)  (2,5)  (3,6)這三個參數與空進行組合成元組

不能直接用*zip(a,b),否則:

可以用list、set、tuple對zip(a,b)進行轉化。如:list(zip(a,b))的結果為 [ (1,4) , (2,5) , (3,6) ]。再如:set(zip(a,b))的結果為 { (1,4) , (2,5) , (3,6) },但若集合中有相同的元組,則只保留一個(因為集合的元素是不重復性),為避免此情況,一般用 list 進行轉化

如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM