簡體   English   中英

使用itertools生成所有n位數字,范圍在1位數字范圍內

[英]Generate all n digit numbers using itertools, with bounds on range of 1st digit

我想生成所有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

這是一個可行的解決方案。 第一步是創建一個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)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM