如何从字典中随机选择一个键

11 浏览
0 Comments

如何从字典中随机选择一个键

我是Python的初学者。我尝试使用这个方法:

random.choice(my_dict.keys())

但是出现了一个错误:

'dict_keys'对象不支持索引。

我的字典非常简单,像这样:

my_dict = {('cloudy', 1 ): 10, ('windy', 1): 20}

你知道如何解决这个问题吗?非常感谢!

0
0 Comments

在使用Python中的字典(dictionary)时,有时候需要从字典中随机选择一个键(key)。然而,在Python的内置字典类型中,并没有直接提供随机选择键的方法。因此,我们需要自己编写代码来实现这个功能。

为了解决这个问题,我们可以使用Python的random模块来生成一个随机位置(position)作为目标位置。然后,我们可以遍历字典中的键,当遍历到目标位置时,返回该键。下面是实现这个功能的代码:

import random
def get_random_key(d: typing.Dict):
    target_pos = random.randint(1, min(1000, len(d) - 1))
    for i, key in enumerate(d):
        if i == target_pos:
            return key

在这个代码中,我们首先使用random模块的randint函数生成一个随机整数作为目标位置。这个目标位置的范围是从1到字典长度减1之间,这是因为字典的键是从0开始计数的。然后,我们使用enumerate函数遍历字典中的键,并使用计数器i来判断是否到达目标位置。当计数器i等于目标位置时,我们返回对应的键。

通过这种方式,我们就可以随机选择一个字典的键了。这个方法可以在需要从字典中随机选择键的情况下使用,例如在编写游戏或者随机生成数据时。

0
0 Comments

在Python中,从字典中随机选择一个键是一个常见的需求。然而,由于字典是无序的数据结构,直接从字典中选择一个随机键是不可能的。因此,需要找到一种方法来解决这个问题。

解决这个问题的方法之一是将字典的键转换为一个列表,然后从列表中选择一个随机元素。在Python中,可以使用random.choice()函数来实现这一目标。具体来说,可以使用以下代码来从名为my_dict的字典中选择一个随机键:

random.choice(list(my_dict))

这个方法适用于Python 2和Python 3。它首先使用list()函数将字典的键转换为一个列表,然后使用random.choice()函数从列表中选择一个随机元素。

如果想要了解更多关于这种方法的详细信息,可以参考https://stackoverflow.com/a/18552025链接中的讨论。

0