Dictionary är helt klart bäst.
1. Sorteras automatiskt från billigast till dyrast om du använder kostnaden som key.
2. Du kan sortera från max->min eller inom olika prisnivåer utan att behöva krångla till det.
Så din bilar.txt följer detta mönster:
% Format: märke /modell/ pris / försäkringspremie
ford
focus
200000
5000
% Format: märke /modell/ pris / försäkringspremie
saab
95
25000
6000
Kod:
#ta input
kontantinsats, ranta = raw_input("kontantinstats låneränta\n").split(' ')
#läs data
f=open("bilar.txt","r")
data=f.read().split("\n")
#generera output
bilar={}
for r in range(1,len(data),5):
bilar[(((int(data[r+3])/12)+(1.0/12.0))*(int(data[r+2]))-int(kontantinsats))*(float(ranta)/100)]=(data[r]+" "+data[r+1])
#skriv ut
print "Månadskostnad\tBil"
for e in bilar: print str(e)+"\t"+bilar[e]
Om du nu vill visa dyrast till billigast:
Kod:
price_list=bilar.keys()#alla nycklar (dvs. kostnader) i bilar dict
price_list.sort(reverse=True)#vi reversar
for val in price_list: print str(val)+"\t"+bilar[val]#skriver ut
Om du enkom använder dig av en vanlig lista, tex:
l=["Ford",129812,"Mercedes",12829]
blir det mycket jobbigare att sortera efter värde och sedan skriva ut rätt bil.