嵌套的 for 循环对于第二个数字不正确

Nested for loop is incorrect for the second number

我正在测试结合年和月的简单嵌套 for 循环

year_time = range(2014, 2016)
month_time = [
    '0101', '0201', '0301', '0401',
    '0501', '0601', '0701', '0801',
    '0901', '1001', '1101', '1201'
]
for year_time in year_time:
    for month_time in month_time:
        print (str(year_time) + month_time)

理想的输出是20140101, 20140201 ... 20151101, 20151201。然而,实际输出是20140101, 20140201 ... 20151.

我哪里错了?

您的 for-loop 变量 (month_time) 在外循环的第一次迭代后(在更改年份后)隐藏列表,因此内循环的第二次迭代遍历字符串 '1201'.
您需要的是更改名称:

years = range(2014, 2016)
months = ['0101', '0201', '0301', '0401', '0501', '0601', '0701', '0801', '0901', '1001', '1101', '1201']
for year in years:
    for month in months:
        print("".join([str(year), month]))

(我还用 .join 替换了连接,这是一种更像 Python 的连接字符串的方式,尤其是当你有两个以上的字符串时)

这对我有用,你应该尝试使用 'step',比如 range(1,10,2) 或者,相反,多个 range()...

year_time = range(2014,2016)
year_time_2 = range(2015,2017)

month_time = ['0101', '0201', '0301', '0401', '0501', '0601', '0701', '0801', '0901', '1001', 
              '1101', '1201']

# Range for 2014
for x in year_time:
        for month in month_time:
            print(str(x) + month)
            
# Range for 2015-2016
for n in year_time_2:
    for month in month_time:
        print(str(n) + month)