我仍然不太熟悉程序语言,我很难理解返回值的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])
答案 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)
,这可能就是你正在寻找的东西。