从列表中创建字典时,我使用
for i in range(10): random.shuffle(list) print "".join(list)
这样我就得到了10个不同的列表随机组合,但是如果列表有10个字符串,那么每个随机我会得到10个字符串,如下所示:
>>> list ['1', 'n', 'f', 'g', 'z', 'j', '5', 's', '2', '3'] >>> for i in range(5): ... random.shuffle(list) ... print "".join(list) ... 13jgzs25nf 15zngs2jf3 jgfsn3z251 g3sf512zjn 5nsj3fg21z
但是,我只想要从列表中的10个字符串中只编写5个随机组合,我该怎么做呢?
TY!
==========================
@volatility in an attempt to use what you showed me but try to get a full list like i did in my question i did this: >>> lst=["1","2","3","f","s","g","5","n","z","j"] >>> for i in range(10): ... random.sample(list, 3) ... print "".join(list) ... ['5', '2', 'n'] gj5nfs231z ['n', '5', '1'] gj5nfs231z ['z', '3', 'j'] gj5nfs231z ['5', 'g', 'n'] gj5nfs231z ['g', 'z', '2'] gj5nfs231z ['2', '3', 'f'] gj5nfs231z ['g', '2', '5'] gj5nfs231z ['3', 'n', '2'] gj5nfs231z ['g', 'z', '2'] gj5nfs231z ['n', 's', 'g'] gj5nfs231z
这是进步,我猜?我最终想得到的是一个看起来像这样的输入(如果我使用上面的列表)
52n z3j 5gn 23f g25 3n2 gz2 nsg
那是可行的吗?
你可以用random.sample
它:
>>> lst = ['1', 'n', 'f', 'g', 'z', 'j', '5', 's', '2', '3'] >>> import random >>> random.sample(lst, 5) ['f', 's', '3', 'z', 'n']
要获得所需的输出,您可以简单地将其放入for
循环中:
>>> for i in range(10): ... print ''.join(random.sample(lst, 5)) ... jn513 13g2f nfsj5 nj3s1 3zn51 sgj2f 5ns3g sg51z 23j1z n2g53
附注:不要list
用作变量名 - 它会影响内置list
类型.