一、使用zip函數
zip函數是Python內置的一個強大工具,它可以將多個迭代器(如列表、元組等)“壓縮”成一個迭代器,其中每個元素都是一個元組。使用zip函數將兩個列表轉換為字典是最常見的方法。
1、基本用法
keys = ['a', 'b', 'c']
values = [1, 2, 3]
a = zip(keys, values)
print(type(a))
print(a)
print(next(a))
print(next(a))
dictionary = dict(zip(keys, values))print(dictionary)
結果:
<class 'zip'>
<zip object at 0x10523cf40>
('a', 1)
('b', 2)
{'a': 1, 'b': 2, 'c': 3}
在這個例子中,zip(keys, values)生成一個迭代器,其中每個元素都是一個元組,dict函數接收這個迭代器并將其轉換為字典。
2、處理不同長度的列表
當兩個列表長度不同時,zip函數會根據較短的列表截斷。
keys = ['a', 'b', 'c', 'd']
values = [1, 2, 3]dictionary = dict(zip(keys, values))print(dictionary) # 輸出: {'a': 1, 'b': 2, 'c': 3}
如果需要處理長度不同的列表而不截斷,可以使用itertools.zip_longest
import itertools
keys = ['a', 'b', 'c', 'd']values = [1, 2, 3]dictionary = dict(itertools.zip_longest(keys, values, fillvalue=None))print(dictionary)
# 輸出: {'a': 1, 'b': 2, 'c': 3, 'd': None}
二、字典推導式
字典推導式是一種簡潔的創建字典的方法,類似于列表推導式。它可以用來將兩個列表轉換為字典。
keys = ['a', 'b', 'c']
values = [1, 2, 3]dictionary = {keys[i]: values[i] for i in range(len(keys))}print(dictionary) # 輸出: {'a': 1, 'b': 2, 'c': 3}
三、使用for循環
keys = ['a', 'b', 'c']
values = [1, 2, 3]dictionary = {}for i in range(len(keys)):dictionary[keys[i]] = values[i]
print(dictionary) # 輸出: {'a': 1, 'b': 2, 'c': 3}