首頁 >後端開發 >Python教學 >解釋Python中的defaultdict

解釋Python中的defaultdict

Susan Sarandon
Susan Sarandon原創
2024-12-17 12:24:26677瀏覽

Explaining defaultdict in Python

用例

此頁面的目的?是為了解釋Python的collections模組中的defaultdict的概念和用法,特別是想知道這個奇怪的名字。它的靈感來自 David Baezley 的 Advanced Python Mastery,請參閱 ex_2_2 >收藏。

預設字典:

  • 為缺失的鍵提供預設值
  • 透過自動初始化金鑰來避免 KeyError
  • 因其初始化元素的預設行為而命名
  • 透過避免手動檢查和插入來簡化程式碼
  • 只有一個可呼叫物件(型別或函數)被傳遞給初始化
  • 在給定的範例中,列表用作預設工廠
  • 這表示它會自動為遺失的鍵建立一個空列表
  • 並有助於有效地將資料分組
  • 也可以將 lambda 函數用於其他文字預設值
  • 範例:defaultdict(lambda: 0) 對於缺少的鍵回傳 0

進階 Python 掌握中的範例程式碼

portfolio
[{'name': 'AA', 'shares': 100, 'price': 32.2}, {'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'CAT', 'shares': 150, 'price': 83.44}, {'name': 'MSFT', 'shares': 200, 'price': 51.23}, {'name': 'GE', 'shares': 95, 'price': 40.37}, {'name': 'MSFT', 'shares': 50, 'price': 65.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}]
print("### DEFAULTDICT")
from collections import defaultdict

print("#### Group data, e.g. find all stocks with the same name")
byname = defaultdict(list)
for s in portfolio:
    byname[s["name"]].append(s)
byname

# defaultdict(<class 'list'>, {'AA': [{'name': 'AA', 'shares': 100, 'price': 32.2}], 'IBM': [{'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}], 'CAT': [{'name': 'CAT', 'shares': 150, 'price': 83.44}], 'MSFT': [{'name': 'MSFT', 'shares': 200, 'price': 51.23}, {'name': 'MSFT', 'shares': 50, 'price': 65.1}], 'GE': [{'name': 'GE', 'shares': 95, 'price': 40.37}]})

print('#### Find all stocks with the name "IBM"')
byname["IBM"]
# >>> [{'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}]

Lambda 範例:

from collections import defaultdict

byname = defaultdict(lambda: 0)
print(byname["missing_key"])  # This will return 0

以上是解釋Python中的defaultdict的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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