【问题标题】:List of lists python 2.7列表列表 python 2.7
【发布时间】:2015-04-24 02:29:35
【问题描述】:

我有以下 Python 2.7 代码:

#-*- coding: latin1 -*-
kw=int(input("Precio del Kw: "))
numeroCasas=int(input("Cantidad de Casas: "))
consumos={}
consumo={}

for i in range(numeroCasas):
    print("Casa numero " + str(i+1) + ": ")
    consumo["propietario"]=raw_input("\tNombre del Propietario: ")
    consumo["numCasa"]=raw_input("\tNumero de Casa: ")
    consumo["consumo"]=int(raw_input("\tConsumo: "))
    consumos={i : consumo}

print("\nCompletado. \nValor del Kw: "+ str(kw) +"\n\nListado de 

usuarios:\n\nNro\t|\tNombre\t|\tCasa\t|\tConsumo\t|\tTotal a Pagar")

    for i in range(numeroCasas):
        totalPagar = consumos[i]["consumo"]*kw
        print(str(i+1) + "\t|\t" + str(consumos[i]["propietario"]) + "\t|\t" + str(consumos[i]["numCasa"]) + "\t|\t" + str(consumos[i]["consumo"]) + "\t|\t" + str(totalPagar))

numeroCasas = 1 有效,但numeroCasas > 1 显示错误消息:

KeyError                                  Traceback (most recent call last)
C:\Users\lewis\Desktop\consumo.py in <module>()
     15 
     16 for i in range(numeroCasas):
---> 17     totalPagar = consumos[i]["consumo"]*kw
     18     print(str(i+1) + "\t|\t" + str(consumos[i]["propietario"]) + "\t|\t" + str(consumos[i]["numCasa"]) + "\t|\t" + str(consumos[i]["consumo"]) + "\t|\t" + str(totalPagar))

KeyError: 0 

对此有何解释?

【问题讨论】:

    标签: python windows python-2.7 canopy


    【解决方案1】:

    我认为这是问题所在:

    consumos={i : consumo}
    

    您不需要字典条目列表,而是需要字典列表。

    for i in range(numeroCasas):
        # read all the stuff in to consumo...
        consumos[i] = consumo
    

    那么,打印也应该很简单。

    for c in consumos:
        print(c)
    

    【讨论】:

    • Thaks,我使用 consumos[i] = consumo 而不是 consumos={i : consumo} 并且效果很好。我还必须添加“consumo = {}”来清理临时数组“consumo”,并使用for i in usuarios: print(consumos[i]['propietario']) 打印
    【解决方案2】:

    错误在一行:

    consumos={i : consumo}
    

    要在字典上附加元素,你必须这样做:

    consumos[i] = consumo
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      相关资源
      最近更新 更多