带有枚举的 for 循环中 Counter 变量的错误

时间:2021-06-06 22:00:49

标签: python python-3.x dictionary for-loop counter

在尝试将名为 counter 的变量添加到 for 循环中时,我不断收到 ValueError。当 counter 变量和 enumerate 标签被移除时,程序运行良好,但当它被添加时,程序就会崩溃。

这是发生错误的代码:

SStrats = {'RSI': OrderedDict([('Exchange', 'Bybit'), ('AccountName', 'Account1'), ('StrategyName', 'RSI'), ('Script', 'MomentumStrats'), ('StratStatus', 'ACTIVE')]), 'ROCR100': OrderedDict([('Exchange', 'Bybit'), ('AccountName', 'Account1'), ('StrategyName', 'ROCR100'), ('Script', 'MomentumStrats'), ('StratStatus', 'ACTIV
E')]), 'MOM': OrderedDict([('Exchange', 'Bybit'), ('AccountName', 'Account1'), ('StrategyName', 'MOM'), ('Script', 'MomentumStrats'), ('StratStatus', 'ACTIVE')])}

for counter,strategy,Status in enumerate(SStrats.items()):
    print("Account: ", Acc_name, "Strategy: ", strategy, "Strat Status:", Status["StratStatus"], "counter", counter)

这段代码的结果:

ValueError: not enough values to unpack (expected 3, got 2)

1 个答案:

答案 0 :(得分:2)

您得到一个元组(对),其中包含一个整数和一个元组(OrderedDict 中的键值对),而不是三元组。

您可以像这样解压缩值:

for counter, (strategy, Status) in enumerate(SStrats.items()):
    print("Account: ", Acc_name, "Strategy: ", strategy, "Strat Status:", Status["StratStatus"], "counter", counter)
相关问题