【问题标题】:Incrementing Counter in List - Int Objects not Iterable Error [closed]列表中的递增计数器 - Int 对象不可迭代错误 [关闭]
【发布时间】:2014-02-05 23:10:03
【问题描述】:

我希望增加列表中包含的两个单独的计数器,并且我将错误“int objects not iterable”作为错误返回。如何增加存储在指定位置的整数?

dc_counter = 0

for i in range(15):
    for i in range(2):
        decision_counter[dc_counter].append([0])
    dc_counter += 1

line_counter = 0

for j in all_decisions:
    if all_decisions[line_counter][4] == 1:
        decision_counter[session_num][0] += 1

    elif all_decisions[line_counter][4] == 2:
        decision_counter[session_num][1] += 1

    line_counter +=1 

【问题讨论】:

  • 不看回溯很难说
  • 鉴于错误信息,我猜在for j in all_decisions: 中你的all_decisions 是一个整数。
  • @jonsharpe 错误不是来自该行,而是来自 decision_counter[session_num][0]
  • edit您的问题包含错误的完整回溯。不要零碎地喂我们面包屑

标签: python list integer counter


【解决方案1】:

您的decision_counter 比您预期的要深一层lists。示例:

[[[0], [1]], [[0], [1]], [[0], [1]], [[0], [1]]]

你最可能的意图是:

[[0, 1], [0, 1], [0, 1], [0, 1]]

为此,请从追加中删除括号:

decision_counter[dc_counter].append(0)    # <-- append(0) instead of append([0])

【讨论】:

    【解决方案2】:

    很难说出你想要完成什么,但看起来你的代码可以简化为类似

    SESSIONS = 15
    decision_count = [[0]*2 for _ in range(SESSIONS)]
    
    for session in range(SESSIONS):
        for dec in all_decisions:
            decision_counter[session][dec[4] - 1] += 1
    

    【讨论】:

      猜你喜欢
      • 2010-09-25
      • 2010-09-16
      • 2019-12-03
      • 2011-09-04
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多