Я хочу сделать это
firstdates = dates[0]
paystring = []
for i in range(len(payment_months)):
if payment_months[i] < firstdates[i]:
paystring.append(0)
else:
paystring.append(((payment_months[i] + 12 - firstdates[i]) + 1) % 12)
print(paystring)
Но я хочу сделать это для всех дат, представляющих собой список списков.Например, давайте просто сосредоточимся на первых двух строках дат.
print(dates[0:2])
дает мне
[[8, 8, 7, 7, 6, 5, 4, 4, 11, 10, 10, 8], [7, 6, 3, 2, 2, 2, 1, 0, 11, 10, 10, 9]]
, а
print(payment_months)
дает мне
[8, 7, 6, 5, 4, 3, 2, 1, 12, 11, 10, 9]
Затем после запуска этого:
paystring = []
for i in range(len(payment_months)):
paystring.append([])
for j in range(len(dates[i])):
if payment_months[i] < dates[i][j]:
paystring[i].append(0)
elif NDD_day[j] > 1:
paystring[i].append((payment_months[i] + 12 - dates[i][j]) % 12)
else:
paystring[i].append( ((payment_months[i] + 12 - dates[i][j]) + 1) % 12)
print(paystring[0:2])
Я должен получить это:
[[1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 2], [2, 2, 4, 4, 3, 2, 2, 2, 2, 2, 1, 1]]
Но я получаю это вместо:
[[0, 0, 1, 1, 2, 3, 4, 5, 0, 0, 0, 0], [0, 1, 4, 5, 5, 5, 6, 8, 0, 0, 0, 0]]
Может кто-нибудь помочьмне исправить мой код?
Вот рукописный пример, который должен быть очень ясным:
![enter image description here](https://i.stack.imgur.com/lTWuN.png)
Я попытался изменить свой код на этот:
# Calculate paystring
paystring = []
for i in range(len(payment_months)):
paystring.append([])
for j in range(len(dates[i])):
if payment_months[i] < dates[j][i]:
paystring[i].append(0)
# elif NDD_day[j] > 1:
# paystring[i].append((payment_months[i] + 12 - dates[j][i]) % 12)
else:
paystring[i].append( ((payment_months[i] + 12 - dates[j][i]) + 1) % 12)
print(paystring[0:2])
, который дал мне это:
[[1, 2, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1], [0, 2, 0, 0, 0, 2, 0, 0, 1, 1, 0, 1]]
Надеюсь, это немного помогает, я не уверен, почему это сбивает с толку, возможно, я не объясняю это лучше всего.