python defaultdict tree_python – 从非空的defaultdict中挑选一个随机元素

说我同意:

import collections, random

d = collections.defaultdict(list)

d['foo'].append('bar')

然后我选择一个随机元素:

random.choice(d)

现在让我们打印d:

defaultdict(list, {0: [], 'foo': ['bar']})

为什么random.choice添加0作为键?

解决方法:

def choice(self, seq):

"""Choose a random element from a non-empty sequence."""

return seq[int(self.random() * len(seq))]

在你的情况下,长度是1,在乘法之后它将导致范围[0.0,1.0)中的数字,并且在对它应用int()之后,你将得到0.

请注意,defaultdict将向其上访问的dict添加任何键:

>>> d = collections.defaultdict(list)

>>> d['i dont exist']

[]

>>> d

defaultdict(, {'i dont exist': []})

因此,你的dict最终得到0.

标签:defaultdict,python,python-3-x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值