簡體   English   中英

在 for 循環中追加多個列表 | Python

[英]Append multiple lists in a for loop | Python

N1_0 = []
M1_0 = []

N1_1 = []
M1_1 = []

N1_2 = []
M1_2 = []

N1_4 = []
M1_4 = []

N1_6 = []
M1_6 = []

X = [0,1,2,4,6]

for M in np.arange(0,1,0.2):
    M2.append(float(M))
    N2.append(N(float(M)))

for x in X:
    for i in np.arange(0,5,1):
        N1_x.append(N2[i]/math.sqrt(x+1))

在第二個 for 循環中,我想為 x 的值附加 N1_x。 我的意思是當 x=0 時,應該附加 N1_0 列表,當 x=1 時應該附加 Nx_1 列表,依此類推。 我試過這種方式,但它給出了一個錯誤,我假設變量在 python 中不能以這種方式工作。 我該怎么辦? 任何幫助深表感謝。

嘗試使用eval() ,這是示例。

eval('x = 5')只是聲明了一個值為 5 的變量x ,這意味着 Python 會將eval()的字符串作為 Python 命令執行。

然后,這是解決方案。 {}將替換為x的值,然后整行將作為 python 命令執行。

for x in X:
    for i in np.arange(0,5,1):
        eval('N1_{}.append(N2[i]/math.sqrt(x+1))'.format(x))

組織數據的便捷方式是通過字典。

您可以首先將其初始化為一個空字典:

N1 = {}

然后,無論您當前正在訪問何處,例如N1_1您都可以使用N1[1]

由於您在內部循環中對N1_x訪問有問題(這不起作用),您只需將其更改為使用N1[x]

        N1[x].append(N2[i]/math.sqrt(x+1))

另一個優點是您的初始化,例如:

N1_0 = []
N1_1 = []
...

盡管您可以將它們類似地硬編碼為:

N1[0] = []
N1[1] = []
...

實際上,您可以在x的外部循環中使用單個語句來執行這些操作:

for x in X:
    N1[x] = []

暫無
暫無

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

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