如何使用变量生成for循环?

2024-06-16 11:54:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近开始学习python,我想在使用循环方面变得更具知识性和灵活性。在

我的问题是,假设我创建了一个名字列表:

names = ('Benjamin', 'Damien', 'Dexter', 'Jack', 'lucas', 'Norman', 'Thorn', 'Bella', 'Blair',
         'Ivy', 'Lilth', 'Megan', 'Rue', 'Sabrina', 'Samara', 
         'Anthea', 'Jessica', 'Igor', 'Luther', 'Boris', 'Abel', )

现在我想使用for循环或while循环(我不知道哪一个是最好的,但是根据我的新手经验,我觉得for循环会更好地工作,但我找不到解决方案)来生成随机数,并使我的循环生成那么多的名称。在

这是我的代码,但不起作用。在

^{pr2}$

我只有一个随机的名字。这里漏了什么/错了什么?在

提前谢谢!在


Tags: 列表fornames名字jack灵活性dexterbella
3条回答

在for循环中,每次循环迭代时都要替换变量generate_random_names。不如把它们列在一个单子里。注意choice()将给您重复的值,如果这是您想要的。在

people_count = int(input("Enter how many names you wish to have, min 0, max 20: "))
generate_random_names = []
for l in range(people_count):
     generate_random_names.append(random.choice(names))

print (generate_random_names)

现在你会有一份名单

也不需要for循环来执行您想要的操作,可以使用list comprehension

^{pr2}$

如果不想在新列表中有重复的值,可以使用sample从中选择一个集合,并在新列表中添加多少个值。在

people_count = int(input("Enter how many names you wish to have, min 0, max 20: "))
generate_random_names = random.sample(names,people_count)
print(generate_random_names)

你总是给同一个变量赋值,所以每次迭代都会覆盖同一个变量,结果是上一次迭代的字符串。在

要想得到你想要的,你必须在for循环中添加随机名称字符串到某种列表或数组中

您正在寻找^{}

from random import sample

names = ('Benjamin', 'Damien', 'Dexter', 'Jack', 'lucas', 'Norman', 'Thorn', 'Bella', 'Blair',
         'Ivy', 'Lilth', 'Megan', 'Rue', 'Sabrina', 'Samara',
         'Anthea', 'Jessica', 'Igor', 'Luther', 'Boris', 'Abel')

print(sample(names, k=4))
# ['lucas', 'Ivy', 'Dexter', 'Abel']

其中k参数是要选择的元素数。在

^{}将始终只选择一个元素。在

相关问题 更多 >