[英]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.