Guide for El cistell de la compra
Com abordar aquest problema
Has de llegir una llista de productes amb el seu nom i preu, i després dir quin és el més car, \ el més barat, i quin ocupa la posició P si els ordenessis de més car a més barat.
Idea general:
- Llegeix N, el nombre de productes.
- Llegeix les N línies següents, cadascuna amb un nom i un preu, i guarda-les en una estructura \ (per exemple una llista de parelles nom-preu).
- Llegeix el número P que indica la posició a consultar.
- Ordena la llista de productes pel preu, de més car a més barat.
- Un cop ordenada: el primer element és el més car, l'últim és el més barat, i l'element de la \ posició P és el que es demana.
- Mostra les tres línies amb el format exacte que demana l'enunciat.
Paranys habituals:
- El preu és un número decimal: vés amb compte en llegir-lo i mostrar-lo amb el format adequat.
- Fixa't bé si la posició P es compta des d'1 (el primer producte és la posició 1) o des de 0, \ per no desplaçar-te un lloc.
- No confonguis "ordenar de més car a més barat" amb l'ordre habitual (ascendent): aquí cal \ ordenar en sentit invers (descendent).
Pista per a Python
Guarda cada producte com una tupla (preu, nom) i ordena la llista amb sort, indicant que \
vols l'ordre invers:
n = int(input())
productes = [] # llista de tuples (preu, nom)
for _ in range(n):
linia = input().split()
nom = linia[0]
preu = float(linia[1])
productes.append((preu, nom))
p = int(input())
# ordena de mes car a mes barat
productes.sort(key=lambda x: x[0], reverse=True)
mes_car = productes[0]
mes_barat = productes[-1]
buscat = productes[p - 1] # compte amb l'index (comença per 1?)
print(f"EL MES CAR: {mes_car[1]} {mes_car[0]}")
print(f"EL MES BARAT: {mes_barat[1]} {mes_barat[0]}")
print(f"EL BUSCAT: {buscat[1]} {buscat[0]}")