python-兩列表對應元素相加形成新列表 zip


zip()函數:

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

如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。

zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中為了減少內存,zip() 返回的是一個對象。如需展示列表,需手動 list() 轉換。

如果需要了解 Pyhton3 的應用,可以參考 Python3 zip()。

兩列表對應元素相加形成新列表:

實例:

>>>a = [1, 2]
>>>b = [3, 4]
#列表生成式
>>>c = [i + j for i, j in zip(a, b)]
  [4, 6]

打包為元組的列表:

>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]

>>> zipped = list(zip(a,b))     # 打包為元組的列表
[(1, 4), (2, 5), (3, 6)]

>>> list(zip(a,c))              # 元素個數與最短的列表一致
[(1, 4), (2, 5), (3, 6)]

>>>print(*zipped)
(1, 4) (2, 5) (3, 6)
>>> list(zip(*zipped))          # 與 zip 相反,*zipped 可理解為解壓,返回二維矩陣式
[(1, 2, 3), (4, 5, 6)]

將兩個列表轉換為字典:

現有2個列表

keys = ['name', 'age', 'food']
values = ['Monty', 42, 'spam']
需要將轉換為字典,結果如下:

a_dict = {'name' : 'Monty', 'age' : 42, 'food' : 'spam'}
那么最簡單的方法是什么呢?

完整代碼

keys = ['name', 'age', 'food']
values = ['Monty', 42, 'spam']
a_dict = dict(zip(keys, values))
print(a_dict) #{'name': 'Monty', 'age': 42, 'food': 'spam'}


免責聲明!

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



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