繁体   English   中英

如何在 python 中循环另一个循环

[英]How to loop another loop in python

我想添加从 0000 到 9999 的列表年份,我做了什么:

i = 0
a = []

while i <= 9:
    a += [i]
    i += 1
years = []
for i1 in a: 
    for i2 in a:
        for i3 in a:
            for i4 in a:
                numbers = f'{i1}{i2}{i3}{i4}'
                years += [numbers]

但是如果我需要这样做 99 次怎么办? 如果没有简单的复制粘贴代码,是否有任何方法可以做到这一点?

你想要的是一个*笛卡尔积。

from itertools import product

for numbers in product([1,2,3], repeat=5): ...

但是,这会随着循环次数的增加而呈指数增长,您可能应该重新考虑您正在尝试做什么。

这使用zfill function 用零填充左侧部分的 rest 字符串。 对于n = 2 ,它从00打印到99 ,如下所示,对于n = 4 ,它产生与您的程序相同的 output。

output = []
n=2
for i in xrange(0,10**n):
    output.append(str(i).zfill(n))
print(output)

OUTPUT

['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM