python字典对象与值

时间:2013-04-05 17:47:42

标签: python dictionary

我仍然不太熟悉程序语言,我很难理解返回值的low_price与返回(显然)对象的high_price之间的区别。有人可以解释一下为什么他们有不同的结构? 两者都是字典。 high_price正在通过一个函数。希望它有意义。如果缩进不正确,我仍然很难道歉,我仍在努力通过网站做到这一点!

Output
{0: {...}} 
({0: {...}}, 99.9969999999999)

def agregate_freq(freq, high_price,low_price):    
    if mynumber >high_price[0]: #new one
        high_price[0] = mynumber
    #if mynumber <low_price[0]: #new one
    #    low_price[0] = mynumber
    print(high_price[0])
    return (high_price)

    if mynumber <low_price[0]: #new one
        low_price[0] = mynumber

    high_price[0] = agregate_freq(0,high_price,low_price)
    print (high_price[0],low_price[0])

2 个答案:

答案 0 :(得分:1)

return (high_price)只是按预期返回表达式high_price而不是元组的值。 (high_price[0],low_price[0])是一个元组。如果你想要一个元素元组,请在high_price之后加一个逗号;类似于return (high_price,)

这就是为什么看到的输出之间存在差异的原因。

答案 1 :(得分:1)

执行high_price[0] = agregate_freq(0,high_price,low_price)时,您将high_price的第0个元素设置为agregate_freq函数的返回值。该函数返回high_price本身,奇怪的是我认为你将high_price的第一个元素设置为high_price本身。你没有这样做low_price 我只是在猜测,但你的函数似乎在做自己的赋值,所以你可能不希望它返回任何东西。只需单独调用agregate_freq(0,high_price,low_price),这可能就是你正在寻找的东西。