Skip to main content
 首页 » 编程设计

python之如何在for循环python中使用计数器

2025年05月04日7JustinYoung

my_date_list = ['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'] 
str_date_list=[] 
for item in my_date_list: 
    str_date_list.append(item+'-'+'05' + '-' +'09') 
 
counter= 0 
i = iter(range(31)) 
for item in i: 
    daily_user_status_list=[] 
    print counter 
    val_time1 = str_date_list[counter] 
    val_time2 = str_date_list[counter + 1] 
    counter =counter + 1 

我在执行 counter = counter + 1 时遇到代码错误。 基本上,我每次都需要从我的 str_date_list 中选择不同的时间。 但是 counter = counter +1 给我代码错误。

还有其他方法吗?

请您参考如下方法:

计数器与您迭代的序列不一致。但更重要的是,计数器是完全没有必要的。

您已经对可以自动化的事情进行了多次手动迭代,但它们导致您绊倒了。特别是,您几乎不需要在迭代时手动跟踪计数器; Python 的序列类型知道如何迭代自己。

这是我重写的上述代码的意图(在交互式解释器中显示它的工作):

>>> dates = ["%(day)02d-05-09" % vars() for day in range(1, 31+1)] 
>>> date_ranges = zip(dates[:-1], dates[1:]) 
>>> for (date_begin, date_end) in date_ranges: 
...     print (date_begin, date_end) 
...  
('01-05-09', '02-05-09') 
('02-05-09', '03-05-09') 
('03-05-09', '04-05-09') 
… 
('28-05-09', '29-05-09') 
('29-05-09', '30-05-09') 
('30-05-09', '31-05-09')