Reputation:
I am converting something I wrote in C++ to Python. Here is a snippet of what I am trying to rewrite in 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;
}
The problem I am having is that I cannot set the first index of my list in python to something. I try this:
dates = []
dates[0] = NDD_month[0]
for i in range(len(first_payments)):
dates[i] = (dates[i-1] + 12 - first_payments[i-1]) % 12
print(dates)
But I get this error:
IndexError: list assignment index out of range
Anyone know how to fix this?
Upvotes: 0
Views: 2672
Reputation: 1940
You're having this problem because you're trying to access a index that was not allocated yet.
To append things to a list you should use append
(edited to fix loop):
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)
Upvotes: 1
Reputation: 449
Since you initialized date
with []
, it is empty with a size of 0. You will need to use append()
to add elements to it.
Upvotes: 1
Reputation: 1280
You can declare your dates
like that:
dates = [NDD_month[0]]
for i in range(len(first_payments)):
dates[i] = (dates[i-1] + 12 - first_payments[i-1]) % 12
print(dates)
Upvotes: 0