如何从列表中获取随机字符串

Max*_*cky 0 python random list

我的班级最近被引入列表,我们的任务是从所述列表中随机获取一个名称,这是我生成的代码

import random
Random1 = random.randint(0,7)
Class_List = ['Noah','Simone','Ji Ho','Thanh','Nathanial','Soo','Mickel','Tuan','Thuy Linh']
print (ClassList[{}].format(Random1))
Run Code Online (Sandbox Code Playgroud)

但是我收到此错误

Traceback (most recent call last):
  File "C:/Users/Mickel/Documents/Python/RPS Tournament/Rock Paper Sissor Tornament.py", line 4, in <module>
    print (ClassList[{}].format(Random1))
TypeError: list indices must be integers, not dict
Run Code Online (Sandbox Code Playgroud)

有解决方案吗

Mar*_*cny 5

Python有一个非常简单的方法: random.choice

import random

class_list = ['Noah','Simone','Ji Ho','Thanh','Nathanial','Soo','Mickel','Tuan','Thuy Linh']
print(random.choice(class_list))
Run Code Online (Sandbox Code Playgroud)

关于为什么你的答案不起作用:

print (ClassList[{}].format(Random1))
Run Code Online (Sandbox Code Playgroud)

.format用于将值插入字符串 - 例如"{}".format(5).显然这与你正在做的事情有所不同.如果您仍想使用您的方法,请按以下步骤操作:

Class_List = ['Noah','Simone','JiHo','Thanh','Nathanial','Soo','Mickel','Tuan','Thuy Linh']
Random1 = random.randint(0,len(Class_List))
print (ClassList[Random1])
Run Code Online (Sandbox Code Playgroud)