在Python中初始化列表的第一个索引 我把我用C++编写的东西转换成Python。下面是我试图用python重写的内容的一个片段: std::vector<int> dates(numberOfPayments.size(), 0); dates[0] = NDD[0] - '0'; for (int i = 1; i < dates.size(); ++i) { dates[i] = (dates[i - 1] + 12 - numberOfPayments[i - 1]) % 12; }
但我得到了这个错误:在Python中初始化列表的第一个索引 我把我用C++编写的东西转换成Python。下面是我试图用python重写的内容的一个片段: std::vector<int> dates(numberOfPayments.size(), 0); dates[0] = NDD[0] - '0'; for (int i = 1; i < dates.size(); ++i) { dates[i] = (dates[i - 1] + 12 - numberOfPayments[i - 1]) % 12; },python,list,Python,List,但我得到了这个错误: IndexError: list assignment index out of range 有人知道如何解决这个问题吗?你可以这样声明你的日期: dates = [NDD_month[0]] for i in range(len(first_payments)): dates[i] = (dates[i-1] + 12 - first_payments[i-1]) % 12 print(dates) 您可以这样声明您的日期: dates = [NDD_mon
IndexError: list assignment index out of range
有人知道如何解决这个问题吗?你可以这样声明你的
日期:
dates = [NDD_month[0]]
for i in range(len(first_payments)):
dates[i] = (dates[i-1] + 12 - first_payments[i-1]) % 12
print(dates)
您可以这样声明您的日期
:
dates = [NDD_month[0]]
for i in range(len(first_payments)):
dates[i] = (dates[i-1] + 12 - first_payments[i-1]) % 12
print(dates)
由于您使用[]
初始化了日期
,因此该日期为空,大小为0。您需要使用append()
向其中添加元素 由于您使用[]
初始化了日期
,因此该日期为空,大小为0。您需要使用append()
向其中添加元素 您遇到此问题是因为您试图访问尚未分配的索引
要将内容追加到列表中,您应该使用追加
(编辑以修复循环):
出现此问题是因为您试图访问尚未分配的索引
要将内容追加到列表中,您应该使用追加
(编辑以修复循环):
您初始化的列表为空。试试dates.append()。在下一行中,您可能希望从1而不是0循环。您初始化的列表为空。试试dates.append()。另外,在下一行中,您可能希望从1而不是0循环。我想强调一个事实,即我只修复了append
部分。循环从0开始,逻辑将访问索引-1
。它不会破坏错误,因为Python允许访问负索引(它会向后访问列表),但我认为这不是您想要做的,是吗?请参阅本文我想强调一个事实,即我只修复了append
部分。循环从0开始,逻辑将访问索引-1
。它不会破坏错误,因为Python允许访问负索引(它会向后访问列表),但我认为这不是您想要做的,是吗?请参阅本文
dates = []
dates.append(NDD_month[0])
for i in range(1, len(first_payments)):
dates.append((dates[i-1] + 12 - first_payments[i-1]) % 12)
print(dates)