簡體   English   中英

清單清單python 2.7

[英]List of lists python 2.7

我有以下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 

這有什么解釋?

錯誤在該行中:

consumos={i : consumo}

在字典上添加元素,您必須這樣做:

consumos[i] = consumo

我認為這是問題所在:

consumos={i : consumo}

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

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

然后,打印也應該很簡單。

for c in consumos:
    print(c)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM