运维开发网

在Python中从非空的defaultdict中挑选一个随机元素

运维开发网 https://www.qedev.com 2020-05-25 14:53 出处:网络 作者:运维开发网整理
说我同意: import collections, random d = collections.defaultdict(list) d[\'foo\'].append(\'bar\')
说我同意:

import collections, random
d = collections.defaultdict(list)
d['foo'].append('bar')

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

random.choice(d)

现在让我们打印d:

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

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

在内部这是 random.choice的作用:

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(<type 'list'>, {'i dont exist': []})

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

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号