2016-04-18 18 views
1

Ich bettle mit Python, also würde ich gerne wissen, wie man ein Programm macht, das einen Code, einen Preis und die Menge einer Anzahl von Produkten liest. Dann sollte das Programm die Codes des teureren Produkts und des Codes des Produkts mit weniger Einheiten drucken. Hier , was ich versucht zu tun:Wie verwende ich einen Wert in einer Liste als Referenz auf einen anderen Wert in Python?

Price=[] 
code=[] 
quantity=[] 
Num=x 
for i in range(x): 
    code.append(input("product code: ")) 
    price.append(float(input("price: "))) 
     quantity.append(int(input("quantity: "))) 
print(code[max(price)]) 
print(code[min(quantity)]) 

Danke schon!

+0

Was macht es falsch? – zondo

+0

müssen Sie 'argmax' und nicht' max' verwenden. 'argmax' ist nicht in Python integriert, aber Sie können es von vielen Bibliotheken wie numpy bekommen. Da Sie jedoch lernen, würde ich empfehlen, es selbst zu implementieren, es ist eine gute Übung und nicht schwer. – Julien

+0

sollten Sie Ihre Frage umbenennen, um nützlich zu sein – Tommy

Antwort

1

ein paar Dinge, die Sie Probleme wahrscheinlich verursachen:

  • Price = [] sollte price = [] sein
  • Num=xx=10 oder eine andere Zahl sein sollte
  • Alle drei Linien unter for den gleichen Gedankenstrich haben müssen.

Um den Code mit max Preis und Code mit min Menge bekommen Sie den Index der maximalen und minimalen zu finden und diese Liste auf dem Code verwenden:

print(code[price.index(max(price))])                                           
print(code[quantity.index(min(quantity))]) 
0

Sie können zip verwenden zu kombinieren Alle Artikel und max zum Finden des maximalen Artikelwertes.

all_items = zip(price, code, quantity) 

item_with_max_price = max(all_items, key=lambda x: x[0]) 
item_with_max_quantity = max(all_items, key=lambda x: x[2]) 
Verwandte Themen