嵌套的 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)
我正在测试结合年和月的简单嵌套 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)