我正在使用这个Python代码来挑选3个单词,从5个单词中随机形成一条消息。
def randomMessage():
word = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird']
return (random.sample(word, 3))
然后,在代码的后面部分,我想使用
将其放入消息中" + randomMessage() + "
但它给我一个错误,说“必须是str,而不是列表”。
我该如何解决这个问题?
答案 0 :(得分:3)
您需要在list
上使用str.join
。
调用random.sample(word, 3)
会返回list
,因此要将其转换为string
,每个元素之间都有空格,您需要执行以下操作:
' '.join(random.sample(word, 3))
会给出:
>>> ' '.join(random.sample(word, 3))
'Bird Dog Cat'
因此,要完成答案,您需要修改randomMessage()
函数末尾的行,完成整个过程:
def randomMessage():
word = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird']
return ' '.join(random.sample(word, 3))
并且一些测试表明它现在返回string
:
>>> randomMessage()
'Animal Queen Bird'
>>> randomMessage()
'Cat Dog Animal'
>>> randomMessage()
'Animal Cat Bird'
>>> randomMessage()
'Bird Dog Animal'
答案 1 :(得分:1)
您的方法返回一个列表,而不是字符串。最快捷的解决方法
$(function(){
if(/tekstovi.test(window.location.href)) {
$('#tekst').addClass('active');
}
});
或者你可以使它更明确
return " ".join(random.sample(word, 3))
注意:在Python中使用此样式:def random_message():
words = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird']
three_words = random.sample(words, 3)
return " ".join(three_words)
,而不是camelcase random_message