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

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

Susan Sarandon
發布: 2024-11-30 18:50:14
原創
585 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板