2012-12-19 38 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循环中的旧字典。您需要将数组[最小值,步长,步长,最大值]指定为字典键的值。

相关问题