將 for 回圈的輸出匯入另一個 for 回圈時遇到問題。
My python script
import pandas as pd
import numpy as np
a=list(np.sort(np.random.uniform(low=2, high=3, size=(3,))))
a = [ round(elem, 1) for elem in a ]
#print(a)
for i,b in enumerate(a):
c=[b,b 1]
print(c)
for lrng in np.linspace(0,3,3):
d=[lrng, 15.0]
print(d[0])
e = {d[0]: c, d[1]:[2.0,2.0]}
print(e)
實際上在這行代碼e = {d[0]: c, d[1]:[2.0,2.0]},中面臨的問題應該是不同的值c但是通過這個腳本我得到了重復的值。
current result
{0.0: [3.0, 4.0], 15.0: [2.0, 2.0]}
{1.5: [3.0, 4.0], 15.0: [2.0, 2.0]}
{3.0: [3.0, 4.0], 15.0: [2.0, 2.0]}
Expected result:
{0.0: [2.0, 3.0], 15.0: [2.0, 2.0]}
{1.5: [2.1, 3.1], 15.0: [2.0, 2.0]}
{3.0: [3.0, 4.0], 15.0: [2.0, 2.0]}
uj5u.com熱心網友回復:
您的問題是,如果c這就是為什么您只能在下一個回圈中計算出最后一個值的原因,那么您會一直重復寫入該值。您需要將值存盤在串列中,然后根據需要將它們讀回。
在這里,我創建了一個空串列c = [],然后在第三個回圈中讀出c由計數器索引的值idx
import pandas as pd
import numpy as np
a=list(np.sort(np.random.uniform(low=2, high=3, size=(3,))))
a = [ round(elem, 1) for elem in a ]
#print(a)
c = []
for i,b in enumerate(a):
c.append([b,b 1])
print(b, b 1)
for idx, lrng in enumerate(np.linspace(0,3,3)):
d=[lrng, 15.0]
print(d[0])
e = {d[0]: c[idx], d[1]:[2.0,2.0]}
print(e)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488933.html
