首頁 >後端開發 >Python教學 >在Python中創建空列表字典時如何避免共享引用?

在Python中創建空列表字典時如何避免共享引用?

Susan Sarandon
Susan Sarandon原創
2024-11-30 18:50:14519瀏覽

How to Avoid Shared References When Creating Dictionaries of Empty Lists in Python?

了解創建空列表字典的挑戰

在Python 中,由於共享引用,創建空列表字典可能會很棘手使用dict. fromkeys() 時列表物件的。嘗試將一個元素追加到一個鍵上,由於引用,會更新具有相同元素的所有鍵。

Fromkeys 方法的行為

當dict.fromkeys 的第二個參數時(),在本例中是一個空列表,被傳遞,結果字典中的所有值共享對列表物件的相同引用。對一個鍵進行的任何修改都會影響所有其他鍵。

替代解決方案

為了避免此問題,存在替代解決方案:

  • 字典理解(Python 2.77和上面):
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))

在此版本中,生成器表達式式直接傳遞到dict 建構函數,繞過列表理解步驟。表達式周圍的括號可以省略。

透過利用這些替代方法,可以正確建立空列表的字典,允許操作單一鍵而不影響其他鍵。

以上是在Python中創建空列表字典時如何避免共享引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn