我需要创建一个包含多个元组的列表。我只能用randint
我有这个:
import random
first_names = ['chris', 'joe', 'billie', 'rose', 'nathatn']
names = []
counter = 0
for name in first_names:
counter += 1
names = [(counter , first_names[random.randint(0, len(first_names)-1)]) ]
print(names)
我得到的结果如下:
[(1, 'chris')]
[(2, 'nathatn')]
[(3, 'billie')]
[(4, 'joe')]
[(5, 'chris')]
我想要完成的是这样一个列表:
[(1, 'chris'), (2, 'nathan'), (3, 'billie'), (4, 'joe'), (5, 'chris')]
我可以通过以下方式实现此格式:
names = [(first_names[random.randint(0, len(first_names)-1)],\
last_names[random.randint(0, len(last_names)-1)]) for name in range(0, len(first_names))]
但我不知道如何让计数器在列表中工作。当我添加'counter'作为元组的第一部分时,它只为每个元组提供5。我需要1,2,3,4,5。当我添加'counter+=1'作为元组的第一部分时,我得到了一个语法错误
我做错了什么?有人能帮忙吗
谢谢
您可以使用
random.choice()
您可以使用
enumerate
自动生成counter
变量如果您需要一个列表,而列表中的元素没有被重复,您可以使用
random.sample)
如您所见
enumerate
以0
开头。但你可以改变这一点你的理解力完全好。问题是,每次迭代for循环时都要替换名称列表。您需要使用list.append()特性和元组理解。另外,要获得包含所有元素的单个列表,print语句应该在for循环之外。比如:
会给你你需要的
相关问题 更多 >
编程相关推荐