列表列表python 2.7
我有以下Python 2.7代码:列表列表python 2.7,python,windows,python-2.7,canopy,Python,Windows,Python 2.7,Canopy,我有以下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_i
#-*- 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))
对于numerocas=1
有效,但对于numerocas>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
keyrerror回溯(最近一次调用)
C:\Users\lewis\Desktop\consumo.py in()
15
16表示范围内的i(数值):
--->17 totalPagar=消耗量[i][“消耗量”]*kw
18印刷体(str(i+1)+“\t|\t”+str(consumos[i][“propitario”])+“\t|\t”+str(consumos[i][“numCasa”])+“\t|t”+str(consumos[i][“consumo”])+“\t|t”+str(totalPagar))
关键错误: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)
萨克斯,我用
consumos[I]=consumo
代替consumos={I:consumo}
,效果很好。我还必须添加“consumo={}”来清理临时数组“consumo”,并在usuarios:print中使用I的进行打印(consumos[I]['propietario'])