【发布时间】:2017-04-26 03:28:34
【问题描述】:
我从两个元组中随机创建一个元组列表,如下所示:
tuple1 = ('green','yellow','blue','orange','indigo','violet')
tuple2 = ('tree',2,'horse',4,6,1,'banana')
mylist = [(t1,t2) for item1 in tuple1 for item2 in tuple2]
这当然给了我类似的东西:
[('green','tree'),('yellow', 2)] 等等。
然后,我想随机从生成的mylist 中选择一个包含两项的元组。换句话说,返回类似('green',2)。
如何从它们的列表中随机选择一个包含两项的元组?我尝试了以下方法,但它不起作用:
my_single_tuple = random.choice(mylist.pop())
如有任何线索或建议,我将不胜感激。
[编辑] 我不清楚目标:我想从列表中删除(弹出)随机选择的元组。
【问题讨论】:
-
上述代码执行结果:
NameError: name 't1' is not defined -
random.choice需要一个列表,那么为什么不只是my_single_tuple = random.choice(mylist)? -
顺便说一句,
mylist可以用mylist = list(zip(tuple1, tuple2))构建 -
然后随机选择一个有效的索引并
.pop它。它是该索引处的元组这一事实无关紧要。 -
获得元组的组合列表后,请参阅stackoverflow.com/questions/10048069/… 以弹出随机元素
标签: python list python-3.x random