说我有一个项目列表:
l1 = ['a','b','c',d','e','f','g']
现在,我想要做的是随机将此列表的内容拆分为n
个列表(例如n = 3),并且定义明确(比如l2的长度为3,l3也是长度3和l4的长度为1),使得没有元件重复。即
l2 = ['a','d','e']
l3 = ['b','f',g']
l4 = ['c']
如何实现这样的目标?谢谢。
答案 0 :(得分:2)
一种方法是随机混洗列表,然后将其拆分为您想要的尺寸:
Indicator name Jan-17 Feb-17 Mar-17
A 5 2 9
B 0 5 3
C 9 6 3
D 9 1 8
答案 1 :(得分:0)
这适用于任何数字n< = list of list
import random
def get_random_sublist(n, li):
random.shuffle(l1)
start = 0
for k in range(n - 1, 0, -1):
tmp = random.randrange(start + 1, len(li) - k + 1)
yield li[start:tmp]
start = tmp
yield l1[start:]
l1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
for i in get_random_sublist(3, l1):
print(i)
输出:
['d', 'b']
['c']
['f', 'g', 'a', 'e']