如何把單個列表轉為字典呢?當然 普通方法很簡單,循環遍歷列表 然后根據key:value方式賦值給字典即可.
但還有更簡潔的方法用python的內置函數iter()和zip()來轉換,先看下iter()的說明:
iter函數: 將容器類型或者序列類型轉為迭代器對象;獲取可迭代對象身上的迭代器, 會調用可迭代對象身上的iter的方法。
語法: iter(object[, sentinel])
參數: object:迭代的集合對象,且支持迭代協議或者支持序列協議。
sentinel :如果傳遞了第二個參數,則參數object必須是一個可調用的對象(如:函數),此時,iter創建了一個迭代器對象,每次調用這個迭代器對象的__next__()方法時,都會調用object。
返回值: 返回迭代器對象
zip() 函數: 用於將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的列表。
如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
zip 方法在 Python 2 和 Python 3 中的不同:在 Python 3.x 中為了減少內存,zip() 返回的是一個對象。如需展示列表,需手動 list() 轉換。
如果需要了解 Pyhton3 的應用,可以參考 Python3 zip()。
語法: zip([iterable, ...])
參數:iterabl -- 一個或多個迭代器;
返回值:返回元組列表。
直接看例子吧:
1 a_list = ['a', '1', 'b', '2','c', '3','d', '4'] 2 a = iter(a_list) 3 a_dic = dict(zip(a, a)) 4 print(a_list) 5 print(a_dic)
打印輸出
小提示:
要轉成字典的單個列表元素個數如果是奇數, 轉為字典后會丟失最后一個元素. 所以轉換之前最好確認列表中元素的個數.