首页 > 解决方案 > 如何解决python中的错误“列表分配索引超出范围”

问题描述

我尝试从存储数据的数据列表中存储 weekofyear 的数量,date_range例如

date_range[1] = DatetimeIndex(['2020-03-02', '2020-03-03', '2020-03-04', '2020-03-05',
               '2020-03-06', '2020-03-07', '2020-03-08', '2020-03-09',
               '2020-03-10', '2020-03-11', '2020-03-12', '2020-03-13',
               '2020-03-14', '2020-03-15', '2020-03-16', '2020-03-17',
               '2020-03-18', '2020-03-19', '2020-03-20', '2020-03-21',
               '2020-03-22', '2020-03-23', '2020-03-24', '2020-03-25',
               '2020-03-26', '2020-03-27', '2020-03-28', '2020-03-29',
               '2020-03-30', '2020-03-31', '2020-04-01', '2020-04-02',
               '2020-04-03', '2020-04-04', '2020-04-05'],
              dtype='datetime64[ns]', freq='D')

通过使用以下代码

weeknumber= [] 
for i in range(28): 
    for j in range(35):
        weeknumber[i][j] = pd.Timestamp(date_range[i][j]).weekofyear

但是,IDE 显示错误“列表分配索引超出范围”。如何解决这个问题呢 ?

标签: pythonlist

解决方案


用这个:

weeknumber = []
for i in range(28):
    weeknumber.append([])
    for j in range(35)):
        weeknumber[i].append(pd.Timestamp(date_range[i][j]).weekofyear)

有关为什么您会在其他方法中获得令人惊讶的结果的解释,请参阅this answer to your other question


推荐阅读