Python lista kezelés?
Az a lényeg: hogy beírok szóköz elválasztásával egy számsort pl: 12 34 133. Ez azt jelenti, a kódolásban, hogy 12:34 kor 133 vendég volt az étteremben. Ezeket óra, perc és vendég listában kellene tárolni. El is kezdtem de nem tudom miért az a hiba ami.
Valaki tudna segíteni a megoldásban?
Ameddig eljutottam:
be=str(input())
ora=[]
perc=[]
seb=[]
uj=0
i=0
for i in range(1,10):
x=be.split(" ")
uj=x[i]
ora.append(uj)
i+=1
print(ora)
1) Legközelebb pastebin-re másold fel, vagy tagold utólag, mert python-nál igencsak fontos, hogy mi hova van behúzva.
2) A for gondoskodik a ciklusváltozó növeléséről.
3) Mi indokolja az 1-től 10-ig tartó for-t?
Utolsó: nem mondod?? A te hozzá szólásod is szar.
Első: Tíznél több elem a listában úgysem fog kelleni, ezért gondoltam fixációt.
Hogyan csinálnád?
ORA='hour'
PERC='minute'
VENDEG='guest'
vendegek=[]
while True:
be=str(input())
x=be.split(" ")
if (len(x) < 3):
break
m={}
m[ORA]=x[0]
m[PERC]=x[1]
m[VENDEG]=x[2]
vendegek.append(m)
for v in vendegek:
print(str(v[ORA])+":"+str(v[PERC])+" - "+str(v[VENDEG]))
Nem a listákkal van a bajod, hanem a ciklusokkal. Először is az i+1= a while ciklusban van. Gondolom, odáig tartana a behúzás, mert különben minek. Ahogy írták, a for ciklusban maga a for intézi. Egyet jegyezz meg egy életre: for cikluson belül a ciklusváltozó értékét változtatni olyan, mint nitroglicerines flakonnal szaladgálni.
Másodszor gondold végig, mit akartál csinálni.
A for előtti részekből az ora=[] kivételével semmi sem hasznosul, redundáns.
Ha nem lenne az utolsó sor, akkor kérne 10 stringet. Az elsőnél fogná az 2. (azaz 0-tól számolva 2.) részét, a percet, és betenné az uj változóba. A másodiknál kérné a létszámot, és azt tenné be. A harmadiknál kiakadna, mert nincs x[4]. De mivel növeled az i-t, ezért dupla sebességgel rohan a kiakadás felé, és el se jutsz 3-ig.
Megjegyzés: majd ne lepődj meg, ha a range(1,10) ciklus 1..9-ig fog futni. ;)
A range(n,m) így működik, n-től m-1-ig ad egy listát. Javaslat: range(10) # -> 0..9, ez 10 elem.
Én magát a ciklust sem értem, mert egyrészt a split egy listát ad vissza, az elemeit viszont különböző helyekre kell tenni. (Arra vigyázz, hogy a bevitelnél értékek között csak egy szóköz lehet.)
Írd meg, hogy pl. ehhez képest mi a cél:
ora=[]
perc=[]
seb=[]
x=str(input()).split(" ")
ora.append(x[0])
perc.append(x[1])
seb.append(x[2])
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!