我要求输入的值是产品的ID。 我想要的是带有该ID(最后一个数字)的产品的价格。
产品代码:
producto=[[0, "Patata", "PatataSL", 7], [1, "Jamon", "JamonSL", 21], [2, "Queso", "Quesito Riquito", 5], [3, "Leche", "Muu", 4], [4, "Oro", "Caro", 900], [5, "Zapatos", "Zapatito", 56], [6, "Falda", "Mucha ropa", 34]]
def productos():
respuesta=True
while respuesta:
print ("""
1.Mostrar Productos
2.Salir al menu
""")
respuesta=input("Introduzca la opcion ")
if respuesta=="1":
for r in producto:
for c in r:
print(c, end = " ")
print()
elif respuesta=="2":
import menu
elif respuesta !="":
print("\n No ha introducido un numero del menu")
购物代码:
import clientes
import productos
def compras():
respuesta=True
while respuesta:
print ("""
1.Comprar
2.Salir al menu
""")
respuesta=input("Introduzca la opcion ")
if respuesta=="1":
i = int(input("Introduzca el id del cliente: "))
if i in (i[0] for i in clientes.cliente):
print("El cliente está en la lista")
else:
print("El cliente no está en la lista")
compras()
p = int(input("Introduzca el id del producto: "))
if p in (p[0] for p in productos.producto):
print("El producto esta en stock")
这些是我一直在尝试的事情,但是我得到一个错误代码:TypeError:'int'对象不可下标。
for j in productos.producto:
for p in j:
print (str(p[3]))
#print("El producto cuesta: " + str(p[p][3]))
最后没问题。
else:
print("El producto no esta en stock")
compras()
elif respuesta=="2":
import menu
elif respuesta !="":
print("\n No ha introducido un numero del menu")
答案 0 :(得分:1)
您可以通过简单地添加一组额外的方括号来获得嵌套项,因此对于第一个嵌套列表中的7
是producto[0][3]
答案 1 :(得分:0)
您可以将列表中的最后一个元素称为第-1个元素。
for productList in producto:
if respuesta == productList[0]:
print('Price:', productList[-1])
答案 2 :(得分:0)
我假设您需要根据ID打印产品价格。
producto=[[0, "Patata", "PatataSL", 7], [1, "Jamon", "JamonSL", 21], [2, "Queso", "Quesito Riquito", 5], [3, "Leche", "Muu", 4], [4, "Oro", "Caro", 900], [5, "Zapatos", "Zapatito", 56], [6, "Falda", "Mucha ropa", 34]]
我假设,索引0为id,索引3为Price。
product_id = 0 //user input
for v in producto:
if v[0] == product_id:
print(v[0][3])
您需要给出价格指数
答案 3 :(得分:0)
如果有可能,最好在class或named tuple中看到这种结构化数据。
这样,您不仅可以获得始终知道自己正在访问什么的好处。但是弄清楚如何访问它很简单。
考虑以下代码:
class Product():
def __init__(self, amount, name, something, price):
self.amount = amount
self.name = name
self.something = something
self.price = price
producto=[
Product(0, "Patata", "PatataSL", 7), Product(1, "Jamon", "JamonSL", 21),
Product(2, "Queso", "Quesito Riquito", 5), Product(3, "Leche", "Muu", 4),
Product(4, "Oro", "Caro", 900), Product(5, "Zapatos", "Zapatito", 56),
Product(6, "Falda", "Mucha ropa", 34)
]
print(producto[0].price)
这看起来可能需要更多的精力,但是如果您打算使用嵌套数组和非结构化数据来制作一个大型的,甚至稍微复杂的程序,您会发现自己不断遇到类似于当前遇到的问题。
也就是说,答案是:
for j in productos.producto:
print (str(j[3]))
您的嵌套数组太深了。