簡體   English   中英

為什么 python 跳過打印列表中的某個索引?

[英]Why python skips printing a certain index in a list?

我正在嘗試計算預測,它使用從索引 11 到 27 的值列表,調整索引需要零。 因此,當我計算預測值時,數字略低於我的預期。 我尋找代碼的任何問題,但找不到任何會使它 go 出錯的東西。 我決定打印預測中使用的列表的值,但出於某種原因它不打印索引 #16,所以我認為這就是導致問題的原因。 代碼:

import numpy as np



# I(t) Equations Number (1 & 2)
def I(t, K, Q, Lambda, v):  
    return (K / (1 + Q * np.exp(-Lambda * t)) ** (1 / v))

    
# N(t) Equations Number (3 & 4)
def N(t, K, Q, Lambda, v):
    if t <= 0:
        return 0
    else:
        return I(t, K, Q, Lambda, v) - I(t - 1, K, Q, Lambda, v)



C = [0, 7, 16, 23, 33, 42, 49, 55, 59, 63, 68, 72, 77, 81, 87, 90, 95, 100, 106, 112, 115, 119, 123, 127, 129, 132, 136, 140, 143, 145, 149, 152, 156, 160, 163, 166, 170, 174, 179, 183, 187, 192, 197, 201, 206, 210, 215, 218, 222, 227, 231, 234, 238, 243, 247, 252, 257, 260, 265, 271, 277, 282, 287, 291, 296, 301, 305, 311, 316, 322, 328, 333, 340, 344, 350, 355, 362, 368, 373, 379, 386]



a = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 5.46858931479187e-05, 1.6206955838810076e-18, 8.985307651607066e-19, 7.003624779270066e-19, 1.1709296887835827e-19, 4.3331201413108664e-19, 1.0737658462711186e-19, 8.496193547355917e-20, 1.3898073202217e-19, 1.8233410168260659e-19, 2.15624909023167e-19, 2.475963618209771e-19, 3.8252420297863168e-19, 4.242115816032489e-19, 7.589290882438663e-19, 4.8984182123788976e-18, 6.215727674683693e-18]

    

print(len(a))


Days = len(C) - 1


Taomin = 11
Taomax = 27


K = 28136042.234956194
Q = 1
Lambda = 0.02871447779455746
v = 2


Number_of_days_to_Forecast = 6


Forecasted_Days = range(Days + 1, Days + Number_of_days_to_Forecast + 1)

Last_Predicted_Day = Days + Number_of_days_to_Forecast



for i in range(Taomax + 1):
    print(a[i], ' ', i)




# List of Forecasted 
Forecast = []


# Forecast Calculation
for t in Forecasted_Days:
    x = 0
    for k in range(1, Last_Predicted_Day + 1):
        if k <= t:
            for j in range(Taomin, Taomax + 1):
                x += a[j] * N(k - j, K, Q, Lambda, v)
    Forecast.append(x)
    

print(Forecast)

output:

28
0.0   0
0.0   1
0.0   2
0.0   3
0.0   4
0.0   5
0.0   6
0.0   7
0.0   8
0.0   9
0.0   10
5.46858931479187e-05   11
1.6206955838810076e-18   12
8.985307651607066e-19   13
7.003624779270066e-19   14
1.1709296887835827e-19   15
1.0737658462711186e-19   17
8.496193547355917e-20   18
1.3898073202217e-19   19
1.8233410168260659e-19   20
2.15624909023167e-19   21
2.475963618209771e-19   22
3.8252420297863168e-19   23
4.242115816032489e-19   24
7.589290882438663e-19   25
4.8984182123788976e-18   26
6.215727674683693e-18   27
[356.90236573940047, 359.3246781887185, 361.69013308570345, 363.99977702653774, 366.25465185585256, 368.45579386232725]

如您所見,它不打印 a[16],我不知道它在進行預測時是否考慮到了它。 奇怪的是,在索引 #16 開始到 go 丟失之前的一個小時,我嘗試了一些調整作為更改列表等,希望它能起作用問題是一樣的,只是不會出現不同的索引。

在我的 python 3.8.10 和 numpy 1.22.3 中,如果更改打印,腳本將正確運行

(a_values[i], ' ', i)

經過

print(a[i], ' ', i)

我不知道你為什么要以這種方式在列表中調用 object,但通常的調用是我之前寫的方式。

祝你今天過得愉快!

output:

    28
0.0   0
0.0   1
0.0   2
0.0   3
0.0   4
0.0   5
0.0   6
0.0   7
0.0   8
0.0   9
0.0   10
5.46858931479187e-05   11
1.6206955838810076e-18   12
8.985307651607066e-19   13
7.003624779270066e-19   14
1.1709296887835827e-19   15
4.3331201413108664e-19   16
1.0737658462711186e-19   17
8.496193547355917e-20   18
1.3898073202217e-19   19
1.8233410168260659e-19   20
2.15624909023167e-19   21
2.475963618209771e-19   22
3.8252420297863168e-19   23
4.242115816032489e-19   24
7.589290882438663e-19   25
4.8984182123788976e-18   26
6.215727674683693e-18   27
[356.90236573940047, 359.3246781887185, 361.69013308570345, 363.99977702653774, 366.25465185585256, 368.45579386232725]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM