了解創建空列表字典的挑戰
在Python 中,由於共享引用,創建空列表字典可能會很棘手使用dict. fromkeys() 時列表物件的。嘗試將一個元素追加到一個鍵上,由於引用,會更新具有相同元素的所有鍵。
Fromkeys 方法的行為
當dict.fromkeys 的第二個參數時(),在本例中是一個空列表,被傳遞,結果字典中的所有值共享對列表物件的相同引用。對一個鍵進行的任何修改都會影響所有其他鍵。
替代解決方案
為了避免此問題,存在替代解決方案:
data = {k: [] for k in range(2)}
這將建立一個字典,其中每個鍵都有自己唯一的空列表。
data = dict([(k, []) for k in range(2)])
透過將列表理解轉換為字典,實現與字典理解相同的結果。
data = dict((k, []) for k in range(2))
在此版本中,生成器表達式式直接傳遞到dict 建構函數,繞過列表理解步驟。表達式周圍的括號可以省略。
透過利用這些替代方法,可以正確建立空列表的字典,允許操作單一鍵而不影響其他鍵。
以上是在Python中創建空列表字典時如何避免共享引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!