我试图用for循环(I<;numero_usuarios)自动生成一个字典,键从带有名称的列表中获取,值是用random.randint(1,10)随机生成的,问题是它并不总是生成我想要的数量
例如,我想创建10个用户(通常是10个),它有时会创建7个、8个或9个,但很少创建10个
代码如下
import random
class practica6:
#Create our constructor
def __init__(self) -> None:
# Initialize users dictionary
self.usuarios = {}
#List of possible names the users can take
self.nombres = ['Mario', 'Pepe', 'Angel', 'Joaquin', 'Jesus', 'Edson', 'Emilio',
'Eli', 'Francisco', 'Sergio',
'Erick', 'David', 'Liam', 'Noah', 'Oliver', 'William', 'James', 'Benjamin', 'Lucas',
'Henry', 'Alexander',
'Mason', 'Michael', 'Ethan', 'Mateo', 'Sebastian', 'Jack', 'Peter', 'Josh',
'Patricia', 'Luis', 'Gerardo', 'Carmen']
def generar_diccionario_usuarios(self, numero_usuarios : int):
#Generate a dictionary with random names (keys) and random priority (values) keys :
#values
for i in range(numero_usuarios):
self.usuarios[random.choice(self.nombres)] = random.randint(1, 10)
#DEBUG : Print our users dictionary
print(self.usuarios)
#Test app
practica = practica6()
n = 10
print('Usuarios:')
practica.generar_diccionario_usuarios(n)
在字典中,一个键不能出现多次,所有插入已存在键的尝试都将导致覆盖存储值。
random.choice
作为具有替换的draw,可以多次返回同一用户。您需要使用random.sample
,它在不进行替换的情况下模拟绘图:这是因为当你一次随机选择一个键时,你的dict中会有重复的键
您可以使用
和一个随机整数列表
然后,您可以通过将这些列表与
问题是,有时“random.choice(self.nombres)”会生成相同的名称,因此会忽略, 因此,解决方案是:
谢谢,希望这对我有用
相关问题 更多 >
编程相关推荐