簡體   English   中英

Defaultdict,其值默認為負無窮大

[英]Defaultdict with values defaulted to negative infinity

我想創建一個默認字典,其中默認值為負無窮大。 我嘗試做defaultdict(float("-inf"))但是沒有用。 我該怎么做呢?

正如追溯明確告訴您的那樣

>>> from collections import defaultdict
>>> dct = defaultdict(float('-inf'))

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    dct = defaultdict(float('-inf'))
TypeError: first argument must be callable

根據文檔 (重點是我的):

如果default_factory [ defaultdict的第一個參數]不為None ,則在不帶參數的情況下調用該函數以提供給定鍵的默認值,此值將插入鍵的字典中並返回。

float('-inf')不可調用的。 相反,您可以執行例如:

dct = defaultdict(lambda: float('-inf'))

提供可返回默認值的可調用“ lambda表達式” 出於同樣的原因,您看到的代碼包含defaultdict(int)而不是defaultdict(0)

>>> int()  # callable
0  # returns the desired default value

例如,當嘗試將defaultdict彼此嵌套時,您也會遇到類似的問題(請參閱Python:defaultdict的defaultdict? )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM