2012-12-19 75 views
0

我有一個字典的參數和它們的值,我從控制檯與交互式程序檢索。建立了一個變量值和固定的字典python

mydic = { 'n': Nvalue , 'p': Pvalue } 

我想修復一個值,並用一步來改變最小值和最大值之間的值。例如,如果用戶選擇改變p,他必須選擇最小值和最大值以及步驟。我必須在字典和詞典中有可能性。

min = 0.2 
max = 0.5 
step = 0.2 
n = 3 

因此我將有:

mydic = { 'n': 3 , 'p': 0.2 } 
mydic = { 'n': 3 , 'p': 0.4 } 

這是我寫的代碼。我沒有設法更新字典以獲得不同的可能性

if var_param == param["name"]: 
    minimum = int(input(" Choose the min value of " + var_param + " : ")) 
    maximum = int(input(" Choose the max value of " + var_param + " : ")) 
    step = int(input(" Choose the step of the variation : ")) 

    i = minimum 
    while i <= maximum : 
     mydic.update({var_param: i+step}) 
     i= i + step 

if var_param != param["name"]: 
    mydic.update({param["name"]: int(input("Choose the value of "+ param["name"]+ " : "))}) 
print(mydic) 

我只得到一個字典。我知道問題出在while循環中,但我不知道如何解決它以獲得所有可能的正確值的字典。

在此先感謝

+0

爲什麼不直接存儲''p':range(min,max,step)'? – StoryTeller

+0

如果我有漂浮物,它是否工作?我認爲該範圍僅適用於'int' – user850287

+1

,您在此期間總是在執行'mydic.update({var_param:i + step})',您的舊值正在被更新中的新值取代,因爲密鑰是相同 – avasal

回答

2

您正在替換while循環中的舊字典。您需要將數組[最小值,步長,步長,最大值]指定爲字典鍵的值。

相關問題