【问题标题】:Python, accumulate 'itertools.accumulate' object does not support item assignment errorPython,累积“itertools.accumulate”对象不支持项目分配错误
【发布时间】:2023-03-15 09:30:02
【问题描述】:

我有以下代码:

diff = [num1-num2 for (num1, num2) in zip(saldo, versamenti)]
iva_a_debito=dict()
iva_a_debito['Iva a debito'] = accumulate(list(diff))

for index, xi in enumerate(iva_a_debito['Iva a debito']):
      if xi < 0 :
          iva_a_debito['Iva a debito'][index] = xi*-1

      else:
           iva_a_debito['Iva a debito'][index] = 0

但是python给我以下错误:

TypeError: 'itertools.accumulate' object does not support item assignment

哪里出错了?

【问题讨论】:

  • 发布带有问题的python回溯。即使python把它给了你,也忽略错误的那一行是相当不合群的。
  • 当一个对象出现意外行为时,它可能与您想象的不同。 print(repr(iva_a_debito['Iva a debito'])) 会告诉你它是一个 itertools.accumulate 对象,而不是一个列表。

标签: python python-3.x list python-2.7 dictionary


【解决方案1】:

将其转换为列表,以便您对其进行更新。

diff已经是一个列表,你不需要list(diff)

iva_a_debito['Iva a debito'] = list(accumulate(diff))

【讨论】:

    猜你喜欢
    • 2012-01-22
    • 2017-11-18
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多