Python 中使用空白列表初始化字典
在 Python 中,建立空列表的字典可以透過多種方法來實現。但是,fromkeys 方法可能不會產生所需的結果,因為它會建立由所有字典鍵引用的單一清單物件。
請考慮以下範例:
data = {} data = data.fromkeys(range(2), []) data[1].append('hello') print(data)
預期結果:{0: [], 1: ['hello']}
實際結果: {0: ['hello' ], 1: ['hello']}
原因:
使用fromkeys 時,第二個參數([]) 被視為單一列表對象,被所有對象引用生成的字典中的鍵。對任何鍵的任何修改都會傳播到所有其他鍵。
解:
要建立獨立空列表的字典,請使用字典理解:
在Python 2.7 或更高版本中:
data = {k: [] for k in range(2)}
在之前的Python版本中2.7:
data = dict([(k, []) for k in range(2)])
或者,在Python 2.4 - 2.6 中,使用生成器表達式:
data = dict((k, []) for k in range(2))
這些方法確保字典中的每個鍵引用一個不同的空列表對象,從而允許用於字典值的獨立修改和定址。
以上是如何在Python中正確初始化帶有空列表的字典?的詳細內容。更多資訊請關注PHP中文網其他相關文章!