[英]Python: How can I modify dictionary values in a for loop alternating the keys?
[英]How can I store values in a dictionary with a while loop and show them as a table in python 3.0?
所以我現在正在做的代碼是為了創建一個目錄,所以首先它詢問用戶他想添加多少項目到目錄中,並為這個項目引入 7 個屬性,即名稱、類型、顏色、功率、燈的類型、價格和單位。 除此之外,我還存儲了 id(第一項是 1,第二項是 2,等等)和價格 + 稅金。
lee_entero 是一個 function,它確保引入的數字是正數,一個 integer。
為此,我執行以下操作:
prod={}
l=[]
n= lee_entero("how many items? ")
for i in range(1,n+1):
p_nombre = input("Name: ")
p_tipo = input("Type: ")
p_color = lee_color("Color: ")
p_potencia = lee_RealPositivo("Power(K): ")
p_tipoLuz = lee_luz("Light type (amarillo, azul o blanco): ")
p_precio = lee_RealPositivo("Price without taxes: ")
if (p_precio <= 50):
print("Low price ")
elif (p_precio <= 100):
print("Medium Price ")
else:
print("High price ")
p_total = p_precio + p_precio*IVA/100
p_unidades = lee_entero("Units: ")
ids=i
prod={"Product nº":ids, "name": p_nombre, "type": p_tipo, "color": p_color, "power": p_potencia, "light type": p_tipoLuz, "price": p_precio, "total": p_total, "units": p_unidades }
l.append(prod)
i=i+1
然后我希望將其顯示為我嘗試過的表格:
print("{:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15}".format("id", "Nombre", "Tipo", "Color", "Potencia", "Tipo Luz", "Precio", "Precio IVA", "Unidades"))
print("*******************************************************************************************************************************************************")
for key, value in prod.items():
elid, nombre, tipo, color, potencia, tipoluz, precio, precioiva, unidades = value
print("{:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15}".format(elid, nombre, tipo, color, potencia, tipoluz, precio, precioiva, unidades))
但這不起作用。
總的來說,我正在尋找一種方法來存儲每個產品的值,然后在不導入任何庫的情況下將它們顯示為表格,但現在給了我 TypeError: cannot unpack non-iterable int object 並且我無法制作它工作,所以任何幫助表示贊賞。
你正在迭代一個字典,所以使用
for key, value in prod.items():
將生成對
key == "Product nº"
value == ids
在第一次迭代中。 因此,您正在嘗試解壓縮值,即 int。 要實現您想要的,可以執行以下操作:
for value in prod.values():
print("{:<15}".format(value),end=" ")
print()
這將打印字典中的所有值而無需換行,然后在末尾添加新行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.