我想要生成所有的n位数字,这样第一个数字从1到7,其余的可以在0到9之间。
我为一个通用的7位发生器编写了生成器,但我不知道如何限制第一个数字只到7。
import itertools
roll = []
for i in itertools.product([str(i) for i in xrange(1,10)], repeat=7):
roll.append(''.join(i))
print roll发布于 2014-06-14 19:50:37
这是一个可行的解决方案。第一步是创建一个6位数字。然后,我以1到7之间的所有数字作为前缀,并将其附加到roll中。
roll = []
for i in itertools.product([str(j) for j in xrange(1,10)], repeat=6):
roll += [str(j)+''.join(i) for j in xrange(1,8)]
print roll注意,根本不需要itertools来生成这个序列,一个简单的一行就足够了:
roll = [str(i) for i in xrange(1000000, 8000000)]https://stackoverflow.com/questions/24223487
复制相似问题