TypeError:randint()得到了意想不到的关键字参数'low'
问题描述:
names = ['Bob', 'Jessica', 'Mary', 'John', 'Mel']
import random
random.seed(500)
random_names = [names[random.randint(low = 0, high = len(names))] for i in range(1000)]
目标是使用上述五个随机列表来创建1,000个名称。但上面的代码抛出回以下错误:TypeError:randint()得到了意想不到的关键字参数'low'
Traceback (most recent call last):
File "<pyshell#88>", line 1, in <module>
random_names = [names[random.randint(low = 0, high = len(names))] for i in range(1000)]
TypeError: randint() got an unexpected keyword argument 'low'
答
删除low
和high
和你的代码将正常工作。即random.randint(0, len(names)-1)
然而,更有效的方式做到这一点是使用random.choice()
>>> [random.choice(names) for i in range(10)]
['Mel', 'Mary', 'Mary', 'John', 'Bob', 'Mel', 'John', 'Jessica', 'Jessica', 'John']
答
(进口numpy的将做到这一点)
进口numpy的为NP
np.random.seed(500 )
random_names = [names [np.random.randint(low = 0,high = len(names))]我在
范围(1000)]
打印前10个记录
random_names [:10]
(其结果将是如下)
缺货[8]: ['玛丽”, '杰西卡', '杰西卡', '鲍勃', '杰西卡', '杰西卡', '杰西卡', '玛丽', '玛丽', '玛丽']
+0
你可以格式化你的代码吗? – WhatsThePoint
卸下低和高显示以下错误:回溯(最后最近一次调用): 文件 “”,第1行,在 random_names = [名称[random.randint (0,len(names))] for i in range(1000)] IndexError:列表索引超出范围Random.choice虽然工作。谢谢。 –
这是由于另一个问题。你必须在'randint'中使用'len(names)-1',因为如果列表中的len是'N',索引将只能达到'N-1' –