【问题标题】:Error for Counter variable in for loop with enumerate带有枚举的for循环中的计数器变量错误
【发布时间】:2021-08-24 02:11:03
【问题描述】:

尝试将名为 counter 的变量添加到 for 循环中时,我不断收到 ValueError。当计数器变量和枚举标签被删除时,程序可以正常工作,但是当它被添加时,程序就会崩溃。

这是发生错误的代码:

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)

【问题讨论】:

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


    【解决方案1】:

    你得到一个带有一个 int 和一个元组(来自OrderedDict 的键值对)的元组(对),而不是一个三元组。

    你可以像这样解压这些值:

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

    【讨论】:

      猜你喜欢
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 1970-01-01
      • 2019-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多