使用infinite defaultdi的代价

2024-05-23 18:12:08 发布

您现在位置:Python中文网/ 问答频道 /正文

这是上天赐给我的:

>>> from collections import defaultdict
>>> infinite_defaultdict = lambda: defaultdict(infinite_defaultdict)
>>> d = infinite_defaultdict() 
>>> d['x']['y']['z'] = 10

Raymond Hettinger on Twitter

既然如此,我不明白我们为什么还要这样做了:

^{pr2}$

等等。。。。在

但我可能错了。 您是否希望避免infinite_defaultdict?在

更新: 我试着给时间做基准

^{3}$

显然,无穷大的速度几乎是正常速度的两倍:

Infd = 0.632
Paind = 0.387

Tags: lambdafromimporton时间基准twitter速度
1条回答
网友
1楼 · 发布于 2024-05-23 18:12:08

如果需要默认值不是dict,则不应使用infinite_defaultdict。例如,如果要计数项目或累积项目数组,则需要默认值为数字或数组。在

def group_by(key, items):
    result = defaultdict(list)
    for item in items:
        result[key(item)].append(item)
    return result

group_by(len, ['here', 'are', 'some', 'words'])
# -> { 3: ['are'] 4: ['here', 'some'], 5: ['words'] }

相关问题 更多 >