【问题标题】:How to save a random string from a list of strings? [duplicate]如何从字符串列表中保存随机字符串? [复制]
【发布时间】:2016-06-02 12:09:47
【问题描述】:

如何从列表中保存随机字符串,以便稍后在代码中回忆确切的内容?例如:

name = ['Hans', 'Peter', 'Eliza']
print('Your name is ' + random(name) + '!')
print(name)

我可以在这里使用什么来代替random(name),我该如何保存它?

【问题讨论】:

    标签: python random


    【解决方案1】:

    您可以使用random 模块中的choice() 方法:

    import random
    
    name = ['Hans', 'Peter', 'Eliza']
    print('Your name is ' + random.choice(name) + '!')
    
    random.choice(seq)
        Return a random element from the non-empty sequence seq.
        If seq is empty, raises IndexError.
    

    另外,我会改用str.format()

    import random
    
    name = ['Hans', 'Peter', 'Eliza']
    print('Your name is {}!'.format(random.choice(name)))
    

    我错过了关于保存价值的部分。可以这样做:

    name = ['Hans', 'Peter', 'Eliza']
    random_name = random.choice(name)
    
    print('Your name is {}!'.format(random_name))
    

    【讨论】:

    • enemy = ['Zombie', 'Dragon', 'Warrior'] print('A' + random.choice(enemy) + ' 出现了!\nHealth ' + str(enemystats[0]) + '\nAttack Damage ' + str(enemystats[1]) + '\nInitiative ' + str(enemystats[2])) print('The ' + 敌人 + ' 攻击了你!') TypeError: cannot concatenate 'str' and “列出”对象
    • 嗯? In [10]: print('Your name is ' + random.choice(name) + '!') Your name is Hans! random.choice() 只会返回列表的一个元素。添加了关于str.format() 的注释以防万一。
    • 使用我上面发送的代码。我该怎么做?
    • 我想保存随机选择的敌人名称(僵尸、龙或战士),然后在变量中重新使用名称,以便稍后调用它: print('The ' + 敌人 + '攻击了你!')
    • 啊,明白了。在答案中查看我的编辑。如果您的 enemystats 列表只是一个平面列表,则不应发生您看到的关于连接字符串和列表的错误。如果是列表列表,或者其他对象的列表,则不能以这种方式打印它们(使用' '.join(my_list) 转换为字符串)。
    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2013-12-26
    • 2021-03-06
    • 2023-03-06
    • 1970-01-01
    • 2018-01-06
    相关资源
    最近更新 更多