【问题标题】:Python: Randomly Select One Key From All Keys in a DictionaryPython:从字典中的所有键中随机选择一个键
【发布时间】:2021-05-25 05:33:21
【问题描述】:

假设我使用 print (hamdict.keys()) 访问了我的字典键

下面是一个示例输出:

我知道我的字典列表的长度为 552 个元素。我想从我的列表中随机选择一个“关键”词并将其分配给变量“starter”。我试图用下面的代码来做到这一点(注意:我有一本名为 hamdict 的字典):

random_num = random.randint(0, len(hamdict.keys())-1)
print (random_num)
print (hamdict.keys()[random_num])

我能够获得 random_num 的值,所以这似乎有效。但是第二次打印返回以下错误:

如何修复我的代码?

【问题讨论】:

标签: python list dictionary random key


【解决方案1】:

my_dictionary.keys() 返回一个类似生成器的对象,而不是一个列表。你可以先把它转换成一个列表来得到你想要的东西

print(list(hamdict.keys())[random_num])

【讨论】:

    【解决方案2】:

    试试这个:

    random.sample(hamdict.keys(),1)[0]
    

    sample() 函数从列表或迭代器中随机选择给定数量的项目。与选择功能相反,它支持迭代器,因此您无需事先从键中创建一个列表。结果是一个列表,因此您需要从输出中获取其第一项(因此是 [0])。

    【讨论】:

    • 社区encourages 在代码旁边添加解释,而不是纯粹基于代码的答案。正如here 解释的那样:“虽然此代码可能会回答问题,但提供有关 为什么 和/或 如何 此代码回答问题的附加上下文会提高其长期价值。 " - From Review
    猜你喜欢
    • 1970-01-01
    • 2015-05-25
    • 2016-09-06
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多