从列表生成随机消息

时间:2017-12-23 19:54:15

标签: python list random

我正在使用这个Python代码来挑选3个单词,从5个单词中随机形成一条消息。

def randomMessage():    
    word = ['Animal', 'Dog', 'Cat', 'Queen', 'Bird']

    return (random.sample(word, 3))

然后,在代码的后面部分,我想使用

将其放入消息中
" + randomMessage() + "

但它给我一个错误,说“必须是str,而不是列表”。

我该如何解决这个问题?

2 个答案:

答案 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