def GetSale():#calculates expected sale value and returns info on the stock with highest expected sale value
global Prices
global Exposure
global cprice
global bprice
global risk
global shares
global current_highest_sale
best_stock=' '
for value in Prices.values():
cprice=value[1]
bprice=value[0]
for keys, values in Exposure.items():
risk=values[0]
shares=values[1]
Expected_sale_value=((cprice - bprice) - risk * cprice) * shares
print (Expected_sale_value)
if current_highest_sale < Expected_sale_value:
current_highest_sale=Expected_sale_value
best_stock=Exposure[keys]
return best_stock +" has the highest expected sale value"
以上是我目前的代碼。不過出於某種原因,它似乎在做第一次循環,然後是第二次,然後是第二次,然後是第一次,然後是第二次。在回到第一個for
循環之前,它似乎每次都進行第二個循環。正因爲如此,我得到的答案是不正確的。如何一次迭代兩個字典並使用兩個值和兩個鍵的結果得到結果
它應該做什麼?你有代碼結構的方式,第二個循環在第一個循環內部,所以它會爲第一個循環的每次循環執行一次第二個循環。 – user2357112
請注意,字典是無序的。一次循環使用兩本字典通常沒有意義,除非它們具有相同的密鑰。 – user2357112
我需要它爲第一個循環的每次迭代執行第二次循環,因爲這兩個字典的長度都是相同的。我需要從它們兩個的信息來計算Expected_sale_value。但是由於某種原因,如果我在兩個字典中都有多個鍵/值對,那麼數學會做出奇怪的事情,並且不會總是顯示出來。 – arisonu123