Egy lista elemeinek számozása miért 0-ról indul?
pl pythonban:
lista = ["nagyon", "fura", "ez", "nekem"]
print lista[1]
a kimenet a "fura" lesz, de miért nem a "nagyon"? nem látok benne túl sok logikát így elsőre...
Általánosan:
A 'lista' a lista elejére mutat, tehát az első elemre, az index pedig az offset-et jelenti, vagyis hogy hányat kell onnan arrébb ugrani a kívánt elemhez. Az első elemhez 0-t kell ugrani, hiszen a 'lista' arra mutat. Ha onnan 1-et ugrasz, akkor az már a 2. elem lesz.
Általában a számítástechnikában az egész számok sorozata nullától indul, mivel a nulla a legkisebb "pozitív" egész, amit tárolni tudunk.
Valójában ez nem is sorszám, hanem egy index. Elemek indexeléséhez minden lehetséges értéket felhasználnak, mert ha egyet is kihagynak, az megfelezi a lehetőségek számát. Luxus lenne kihagyni a nullát. :)
Egyszerűen meg kell tanulni, hogy a tömb- (lista-, vektor-, stb.) indexek így jönnek:
0,1,2,3, ...
Igen, amit első írt, az is igaz. Az index alapján számolja ki a progi, hogy hol van a keresett elem. Az első elem helye adott, a többit úgy találja meg, hogy az első címéhez hozzáadja az 'index * elemméret' értéket.
Tehát az első az első+0*méret, vagyis önmaga,
a második lesz első+1*méret, vagy a következő, stb.
(
"#3 Zavaros katyvasz. #1 Mondja jól. Azért 0-tól indul, mert az első elemhez 0-t kell lépni."
Az lehet, hogy én rosszul közelítettem meg a dolgot, de hogy te sem válaszoltál a kérdésre, az is biztos. :DDD
)
"Általában a számítástechnikában az egész számok sorozata nullától indul, mivel a nulla a legkisebb "pozitív" egész, amit tárolni tudunk."
0, mint pozitív egész??? Melyik bolygón??
"Valójában ez nem is sorszám, hanem egy index."
Mi a különbség a sorszám és az index között?
"Elemek indexeléséhez minden lehetséges értéket felhasználnak, mert ha egyet is kihagynak, az megfelezi a lehetőségek számát.2
WTF??? n-1=n/2?
"Luxus lenne kihagyni a nullát. :) "
Pff...
Köszi, így már értem.
Néhány válasz bizonyos részeivel nem értek egyet: nem megszokni, vagy megtanulni akartam, hanem megérteni... :) Sikerült, köszi mindenkinek.
"de hogy te sem válaszoltál a kérdésre, az is biztos. :DDD"
De, hogyne válaszoltam volna. Azért, mert azt adjuk meg, hogy mennyi kell lépni.
"az első címéhez hozzáadja az 'index * elemméret' értéket."
Vagy igen, vagy nem. Ez attól függ, hogy mi van a lista alatt. Egy tömb esetén igen. Egy láncolt lista vagy egy deque már teljesen máshogy működik.
"Néhány válasz bizonyos részeivel nem értek egyet: nem megszokni, vagy megtanulni akartam, hanem megérteni..."
Márpedig meg kell szokni, ha ilyen nyelveket akarsz használni. Azt írod, nem találsz túl sok logikát benne, és neked ez furcsa. Akkor bizony szükséged van a megszokásra, az, hogy nem akarod csak neked nehezítés. Az első lépés a megértés, ezt pedig megadtuk.
"De egyébként ti nem találjátok ezt "helytelennek"? Csak azért, mert ugye elvileg a magas szintű nyelvek lényege, hogy az ember logikájához jobban igazodjon."
Nincs egy egyértelmű határ. A C egy viszonylag alacsonyabb szintű magasszintű nyelv. Hardverközeli, ott érthető a 0. Sok nyelv a C-s szokásokhoz igazodik, mert megkönnyíti az áttérést. Egy teljesen új nyelvnél is inkább a 0-t választják, mert ez a szokás. Ha mást választasz, csak kavarodást okozol.
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!