0

我仍然不太熟悉编程语言,我正在努力理解返回值的 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])
4

2 回答 2

1

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

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

于 2013-04-05T17:53:24.843 回答
1

当你这样做时high_price[0] = agregate_freq(0,high_price,low_price),你将第 0 个元素设置为你的函数high_price的返回值。agregate_freq该函数返回high_price自身,奇怪的是我认为您将第一个元素设置high_pricehigh_price自身。你这样做不是为了low_price
我只是在猜测,但您的函数似乎正在执行任务本身,因此您可能不希望它返回任何内容。只需agregate_freq(0,high_price,low_price)自己调用,这可能会满足您的需求。

于 2013-04-05T17:53:39.493 回答