我试图使用random.sample()返回一个随机的键值对,并只打印该键,即fruits:papaya,但我的代码返回一个TypeError。如何修复它?谢谢
import random
Dictionary = {"fruits": ["watermelon","papaya", "apple"], "buildings": ["apartment", "museum"], "mammal": ["horse", "giraffe"], "occupation": ["fireman", "doctor"]}
def choose_word():
hint, chosen_word = random.sample(Dictionary.items(), 2)
print("Hint: " + hint)
blank = []
for letter in chosen_word:
blank.append("_")
print("".join(blank))
return chosen_word
错误消息
TypeError: can only concatenate str (not "tuple") to str
random.sample(Dictionary.items(), 2)
从字典返回两个随机键值对,因此hint
成为第一个键值对,而chosen_word
成为第二个键值对。因此,提示是('fruits', ['watermelon', 'papaya', 'apple'])
。由于无法连接字符串("Hint: "
)和元组(hint
),因此会出现该错误是否只需要一个键值对?Do
hint, chosen_word = random.sample(Dictionary.items(), 1)[0]
如果您想打印一个下划线字符串,在关键字中每个单词有一个下划线,只需执行以下操作:
print("_" * len(chosen_word))
因此,总体而言:
印刷品:
返回:
在引用了@Yogaraj和@mcsoini之后,我找到了一个解决方案
它有点长,但它设法避免使用random.sample(),因为它已被弃用
根据random.sample的文档,它将返回从填充序列或集合中选择的唯一元素列表
在示例代码中,
random.sample(Dictionary.items(), 2)
将返回一个长度为2的列表您需要将
random.sample
方法的参数从2更改为1,并在展开时hint
包含键,chosen_word
将包含值列表相关问题 更多 >
编程相关推荐