使用索引迭代两个列表

Iteration over two lists using index

我正在尝试按特定时间间隔创建时间和日期列表。时间和日期存在于时间序列 csv 中,我想编写一个代码来从特定时间间隔中提取数据。我为日期和时间制作了两个列表,并且正在创建一个新变量来存储感兴趣的日期和时间。我尝试了以下代码,但出现错误:

day = ['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']
hour = ['0', '3', '6', '9', '12', '15','18','21']
year, month, day, hour = year, month, day, hour # 2016-01-01 @01:00 am
day_time = []
for i in day.index:
    for j in hour.index:
        day_time = int("".join(day[i], hour[j], "00",))
print(day_time)

TypeError                                 Traceback (most recent call last)
<ipython-input-72-15de17abf279> in <module>
      6 year, month, day, hour = year, month, day, hour # 2016-01-01 @01:00 am
      7 day_time = []
----> 8 for i in day.index:
      9     for j in hour.index:
     10         day_time = int("".join(day[i], hour[j], "00",))

TypeError: 'builtin_function_or_method' object is not iterable

有人可以提出解决方案吗?

我认为 enumerate() 更适合你

for indexDay, valueDay in enumerate(day):
    for indexHour, valueHour in enumerate(hour):
        day_time.append(int("".join([valueDay, valueHour, "00"])))

index 是一个函数,而不是 list 实例的属性。请参考Data structures

此外,str数据类型的join函数接受迭代,参考here

此外,正如@Lecdi 指出的那样,您应该使用 append 添加到列表而不是使用 = 重新定义变量;请参考here

能够做自己想做的事:

day = ['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']
hour = ['0', '3', '6', '9', '12', '15','18','21']
year, month, day, hour = year, month, day, hour # 2016-01-01 @01:00 am
day_time = []
for day_i in day:
    for hour_i in hour:
        day_time.append(int("".join([day_i, hour_i, "00"])))
print(day_time)