【发布时间】:2017-03-02 18:07:21
【问题描述】:
假设我有一个名为 masterlist 的 200 个正、唯一、随机整数列表。
我想生成一个名为 container 的 10 个列表的列表,这样:l1 有 2 个来自 masterlist 的随机数,不包括重复; l2 有 4 个元素,l3 有 6 个元素,依此类推。
我知道我可以像这样创建我的container 列表:
comb=[[] for i in range(10)]
我可以使用random.choice() 从列表中选择一个随机值。
嵌套这 10 个列表的填充过程的最佳 Pythonic 方法是什么,以便我创建一个列表,附加正确数量的值以检查没有重复,然后继续下一个?
编辑
这是我的尝试:
comb=[[] for i in range(10)]
for j in range(1,11):
for k in range(0,2*j):
comb[j][k].append(random.choice(masterlist))
这有什么问题?
【问题讨论】:
-
每个列表应该包含多少个整数?两个不同的列表可以有两个相同的数字吗?
-
l1有 2 个值,l2有 4 个值,l3有 6 个,一直到l10有 20 个。是的,两个不同的列表可以有两个相同的数字。重要的是在每个列表中都没有重复。 -
2个子列表可以有一个数字吗?
-
是的,当然可以。