A dimenziók bűvöletében

Ebben a posztban a listáinkat tesszük többdimenzióssá.

Ez egy egydimenziós lista: ['mert', 'olyan', 'mint', 'egy'] vonal, azaz csak egy kiterjedése van, mégpedig a hosszúsága (tudod: len()).

[['Ha', 'egy', 'lista'],
['egy', 'táblázatra', 'hasonlít'],
['akkor', 'kétdimenziósnak', 'hívjuk.']]

Nézd meg jól eszt a listát: hány eleme van? Kilenc?? Nem, csak három, de mindegyik egy újabb lista, megint csak három-három elemmel. Ez egy kétdimenziós lista, amit Pythonban gyakran neveznek listák listájának (angolul: list of lists). Persze nem kell három sorban írni. A kódban szabad, mert esetleg úgy neked olvashatóbb, de ha ki akarod print()-elni, akkor bizony egy sorba kerül, így:
[['Ha', 'egy', 'lista'], ['egy', 'táblázatra', 'hasonlít'], ['akkor', 'kétdimenziósnak', 'hívjuk.']].

Az egyes elemek elérésére ilyenkor két indexet használunk. Ha a fenti lista neve a kreativitás esszenciájaként “lista”, akkor “táblázatra” szó a lista[1][1], azaz a második elem második eleme.

Na, akkor videózzunk:

A split() tagfüggvény

A karakterlánc adattípus tagfüggvénye, és arra jó, hogy az általunk megadott határolókarakternél szétszedi a karakterláncot listává. Ha nem adunk meg semmit, akkor a whitespace karaktereknél (emléxel: szóköz, sorvége, tabulátor) hasít, de különben nézd meg magadnak.

Feladatok

A következő feladatok megoldásánál használd ezt a fájlt (az oszlopok jelentése: név, poszt, játszott meccsek száma, rúgott gólok száma):

Aladar hatved 8 2
Bela hatved 10 2
Csaba csatar 7 10
Dezso csatar 8 11
Elemer kozeppalyas 9 3
Ferenc kozeppalyas 9 3
Geza csatar 9 4

F0029a: Írd ki a csapattagok nevet egy sorba, vesszővel elválasztva! Adj megoldást úgy is, hogy tárolod az adatokat egy 2D listában, meg úgy is, hogy nem tárolod őket, csak olvasol egy sort és már írsz is! (Megoldás itt.)

F0029b: Áruld el, hogy hány csatár adatai vannak tárolva a fájlban! (Megoldás itt.)

F0029c: Az előző megoldásodat alakítsd át úgy, hogy használj függvényt, és a függvény akármelyik poszton játszó játékosokat meg tudja számolni. A függvény két paramétere a 2D lista, illetve a megszámolandó játékosok posztja. (Megoldás itt.)

F0029d: Ki és milyen poszton rúgta a legkevesebb gólt? Tipp: határozd meg, hogy mennyi a legkevesebb gól, aztán határozd meg, hogy ki rúgott ennyit. (Megoldás itt.)

F0029e: Van-e olyan, aki legalább 10 meccset játszott?

F0029f: Hány gólt rúgtak a játékosok átlagosan? Tipp: számold össze a gólokat, majd a kapott számot oszd el a focisták lista hosszával!

F0029g: Hány gólt rúgtak az egyes posztokon lévő játékosok átlagosan?

Előzőleg megtanultunk fájlt olvasni és írni.

A dimenziók bűvöletében” bejegyzéshez 38ozzászólás

  1. Kedves raerek!

    Először is szeretném elmondani, hogy ez a tananyag sorozat egyszerűen fantasztikus. Annyira könnyed és lényegre törő és sokat mondó.

    Másodszor eddig a pontig (Függvények, szövegfájlok, többdimenziós listák) nagyon jól haladtam tanulásban és megértésben is. Aztán itt jött a probléma, ebben a tömben lévő három anyag kicsit kifogott velem. Értem a lényegét mind a három anyagnak, de nem olyan magabiztosan. Nem értem az egészet, és ez most nagyon zavar. Annyira, hogy most nem tudom a hogyan továbbot. Ezért szeretném kérni a tanácsodat.

    Mit tegyek most? Mit csináljak, hogy megértsem ennek a három leckének minden részletét?

    Addig nem szeretnék továbbhaladni, mert ezek fontos részek.

    Kérlek adj tanácsot.

    Köszönöm szépen előre is.

    Üdvözlettel: Ádám

    Kedvelés

    • Szia Ádám!

      Ha túl vagy az összes feladaton is, akkor szerintem két utad van:
      Vagy tegyél fel konkrét kérdést, és akkor megpróbálok segíteni,
      vagy megnézed a következő leckéket, és ha addigra sem érted, akkor visszatérsz ide.

      Kedvelés

  2. Köszönöm szépen a válaszodat. Lesz több kérdésem is, viszont először beírnám az saját megoldásomat az utolsó feladatról. Ezt azért teszem, mert szerintem nem a legjobb. Működik egyébként, csak az a megérzésem, hogy lehetne sokkal egyszerűbben.

    F0029g: Hány gólt rúgtak az egyes posztokon lévő játékosok átlagosan?

    def atlag_golok_csatar():
    golok = 0
    poszt = 0
    for elem in lista:
    if elem[1] == ‘csatar’:
    golok += int(elem[3])
    poszt += 1
    atlag_gol = golok / poszt
    return atlag_gol

    def atlag_golok_kozeppalyas():
    golok = 0
    poszt = 0
    for elem in lista:
    if elem[1] == ‘kozeppalyas’:
    golok += int(elem[3])
    poszt += 1
    atlag_gol = golok / poszt
    return atlag_gol

    def atlag_golok_hatved():
    golok = 0
    poszt = 0
    for elem in lista:
    if elem[1] == ‘hatved’:
    golok += int(elem[3])
    poszt += 1
    atlag_gol = golok / poszt
    return atlag_gol

    listak = []

    forrasfajl = open(‘Feladat005.txt’, ‘r’)

    for sor in forrasfajl:
    listak.append(sor.strip().split())

    forrasfajl.close()

    print(‘A csatárok átlag gólszáma: ‘, atlag_golok_csatar(), ‘\n’
    ‘A középpályások átlag gólszáma: ‘, atlag_golok_kozeppalyas(), ‘\n’
    ‘A hátvédek átlag gólszáma: ‘, atlag_golok_hatved(), ‘\n’)

    Kedvelés

    • A frappánsság titka az lesz, hogy olyan függvényt írsz, aminek a paramétere a poszt:)
      Frappánsítsd tovább a megoldást, ha odajutsz: ne definiáld a posztok nevű listát, hanem rakd össze a bemeneti fájlban előforduló posztokból. Kérdezz bátran, ahogy odajutok, válaszolok:)

      def mennyitrúgtak(szerep):
      #a paraméter neve szándékosan nem poszt, bár az is lehetne
      #akkor ez egy másik poszt nevű változó volna, nem ugyanaz, mint a lenti
      ennyit = 0
      for focista in focisták:
      if focista[1] == szerep:
      ennyit += int(focista[-1])
      return ennyit

      focisták = []

      forrásfájl = open(‘bemenet.txt’)

      for sor in forrásfájl:
      focisták.append(sor.strip().split())

      forrásfájl.close()

      posztok = [‘hatved’, ‘csatar’, ‘kozeppalyas’]
      for poszt in posztok:
      print(poszt, ‘: ‘, mennyitrúgtak(poszt), sep=”)

      Kedvelés

  3. F0029d: Valahogy máshogy jár az agyam… Végülis működik:)

    focistak = []
    golok = []

    forrásfájl = open(‘foci.txt’)

    for sor in forrásfájl:
    focistak.append(sor.strip().split()[0])
    golok.append(int(sor.strip().split()[3]))

    forrásfájl.close()

    keresett = min(golok)

    print(keresett, ‘a legkevesebb gól, ‘, end = ”)

    print(focistak[golok.index(keresett)], ‘az elkövető.’)

    Kedvelés

    • Teljesen rendben van, ha az ilyen elemi feladatoknál szétszeded az adatokat – később meg, ha nagyobb táblákkal dolgozol, akkor úgyis egyben fogod őket tartani, vagy pedig objektumokat készítünk majd belőlük, hiszen van, ahol az lesz a célravezető.:)

      Kedvelés

  4. Hasonló kérdésem van – azt hiszem – mint az előttem hozzászólónak. Az nem gond, ha szétszedem az adatokat, vagyis csináltam egy újabb listát a b és a c feladatban a csapatrészeknek és abban count tagfüggvénnyel számoltam:

    def csapatreszek(ketdlista, poszt):
    csapatresz_lista =[]
    for sorlista in ketdlista:
    csapatresz_lista.append(sorlista[1])
    return csapatresz_lista.count(poszt)

    Kedvelés

    • Jelen szintünkön nem gond, egyáltalán. Gond olyankor lesz majd, ha nagyon sok adattal dolgozol, hiszen most van egy plusz adatmásolós műveleted, ami végső soron idő és memória.

      Kedvelés

    • Jól csináltál mindent:
      önállóan fedezi fel a posztokat
      megtart minden információt, hátha később mást kell számolni belőle

      Azt lehetne még csinálni, hogy amikor felfedez egy új posztot, akkor végigrohan a fájl maradék részén, mert ugye aleddig tutira nem volt olyan poszt, elég, ha a hátralévőt nézi végig. Kérdés, hogy ez a bonyolítás nem teszi-e túlzottan átláthatatlanná a programot. Biztos megvan az a mennyiségű és jellegű adat, ahol már megéri így csinálni, itt szerintem a te megoldásod a jó.

      Akkor lehetne egyszerűsíteni, ha beledrótoznád a programba a lehetséges posztokat.

      Kedvelik 1 személy

  5. F0029b-hez egy rövidebb megoldást hasznaltam:

    forras = open(‘/tmp/szoveg.txt’,’r’)
    sorok_szama = 0

    for sor in forras:
    if sor.strip().split()[1] == ‘csatar’:
    sorok_szama += 1
    print(sorok_szama)
    forras.close()

    Kedvelés

  6. A 0029d-t, igaz nem függvénnyel (hisz az eredeti feladatban nem szerepelt ez a kitétel), de szerintem egyszerűbben oldottam meg. A fájl megnyitás/lezárás így ok ugye (azaz, hogy mindkétszer nyitom/zárom)?:

    forras = open(‘/tmp/szoveg.txt’,’r’)

    legkevesebb_gol = 50
    for sor in forras:
    gol = sor.strip().split()[3]
    if int(gol) < int(legkevesebb_gol):
    legkevesebb_gol = gol
    forras.close()

    forras = open('/tmp/szoveg.txt','r')
    for sor in forras:
    rekord = sor.strip().split()
    if rekord[3] == legkevesebb_gol:
    print(rekord[0],rekord[1])
    forras.close()

    Kedvelés

    • Oké, ahogy nyitsz-zársz, de nem volna szükséges. Más kérdés, hogy itt nem foglalkoztunk azzal, hogy miként mész vissza a fájl elejére, erre a forras.seek(0) a jó, emlékeim szerint.
      Ha ez a fájl viszonylag nagy, akkor lényegesen gyorsabb lehet egyszer beolvasni a memóriába (már ha nem akkor a fájl, hogy nem fér el odabenn), és abban kolbászolni kétszer.

      Más: ez az int fölösleges, int(legkevesebb_gol)
      de csak akkor, ha legkevesebb_gol = int(gol)-lal teszed el. Így megint csökken a műveletigény:)

      Kedvelés

  7. Ha a F0029f-et nem listával oldom meg (csak egy ciklus van benne), az is jó ?

    forras = open(‘/tmp/szoveg.txt’,’r’)
    golok = 0
    jatekos = 0

    for sor in forras:
    golok += int(sor.strip().split()[3])
    jatekos += 1
    forras.close()
    print(jatekos,’jatekos osszesen’,golok,’golt rugott. Az atlag:’,golok/jatekos,’gol’)

    Kedvelés

  8. Szia!

    Tudnál kicsit segíteni? Egy érettségis feladatsorban elakadtam.Nem tudom, hogy a 7-es feladattól, hogy kellene, és én szerdán írok infóból. (nem emelten)

    Click to access k_infoism_17okt_fl.pdf

    az egyszamjaték.

    eddig így oldottam meg:
    naplo = []

    forrasfajl = open(‘egyszamjatek.txt’)
    for sor in forrasfajl:
    sor = sor.strip().split()
    f1 = int(sor[0])
    f2 = int(sor[1])
    f3 = int(sor[2])
    f4 = int(sor[3])
    f5 = int(sor[4])
    f6 = int(sor[5])
    f7 = int(sor[6])
    f8 = int(sor[7])
    f9 = int(sor[8])
    f10 = int(sor[9])
    nev = sor[10]
    naplo.append([f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, nev])

    szamok =[]
    print(‘3. feladat: Játékosok száma:’,len(naplo))
    for elem in naplo:
    nevek = elem[-1]
    fordulok = elem[:-1]
    szamok.append(fordulok)
    print(‘4. feladat: Fordulók száma: ‘, len(fordulok))

    for elem in naplo:
    if elem[0] == 1:
    print(‘5. feladat: Az első fordulóban volt egyes tipp!’)
    break
    else:
    print(‘5. feladat: Az első forduloban nem volt egyes tipp!’)

    legnagyobb = max(szamok)
    print(‘6. feladat: A legnagyobb tipp a fordulók sorám: ‘, max(legnagyobb))

    fordulo_szam = input(‘Kérem a forduló sorszámát [1−10]: ‘)

    remélem nem túl rossz 🙂

    Kedvelés

  9. Szia!
    Az utolsó feladatot “frappánsan” szerettem volna megoldani, de mint az alábbiakban láthatod nem igazán sikerült. Esetleg rá tudnál világítani, hogy miképp oldjam meg ezzel a módszerrel? Vagy lehetetlen? A válaszodat előre is köszönöm!
    #29g
    feladat = {}
    for sor in játékosok:
    feladat[sor[1]] = feladat.get(int(sor[3]), 0) + (int(sor[3])

    print(feladat)

    //A végeredmény:
    {‘hatved’: 2, ‘csatar’: 4, ‘kozeppalyas’: 3}

    Kedvelés

    • Először is: nagy örömömre szolgált látni, hogy ezzel a módszerrel próbálkozol. Így hajnalban két bajt látok: a) ez összeg lesz és nem átlag b)a get-nél ugye kulcsot akarod megadni, ami sor[1].

      Itt a működő verzió (persze ez is még összeget számol):
      játékosok = open(‘fájl.txt’)

      feladat = {}
      for sor in játékosok:
      sor = sor.strip().split()
      print(sor)
      feladat[sor[1]] = feladat.get(sor[1], 0) + (int(sor[3]))

      print(feladat)

      Két megjegyzés még:
      1) Már érdemes beolvasáskor int()-ni amit kell
      2) Most ebből átlag akkor lesz, ha megszámolod még egyszer, hogy melyi poszt hányszor van. Az vagy még egy szótár, vagy olyan szótárat hanszálsz eleve, ahol minden értrék is egy lista, vagy szótár.

      Kedvelés

      • Köszönöm! Sikerült 😀
        (Még egy szótárral csináltam)
        feladat1 = {}
        feladat2 = {}
        for sor in játékosok:
        feladat1[sor[1]] = feladat1.get(sor[1], 0) + int(sor[3])
        feladat2[sor[1]] = feladat2.get(sor[1], 0) + 1

        for k, v in feladat1.items():
        for key, value in feladat2.items():
        if key == k:
        print(key, “: “, round(int(v) / int(value), 1))

        Legközelebb pedig előbb gondolkodok a typeokról 🙂

        Kedvelés

  10. Szia Ráérek és lelkes sorstársaim!
    Kérlek ráérek segíts nekem mert nagyon nehezen veszem fel a ritmust a függvény készítéssel és a f0029d feladat 1 függvénnyel iródótt meg és az lenne a kérdésem, ha nem jó akkor miért nem jó?
    Kérlek kötekedj!! és ird le nyugodtan nyersen tömören a véleményed ,ha esetleg van fölös néhány perced.
    Előre is köszönöm és nem tudom elégszer megköszönni az oldalad nagyszerűségét tanár úr!

    def legkevesebb_gól(lista):
    gólók = []
    for i in range(len(lista)):
    gólók.append(int(lista[i][3]))
    if gólók[i] == min(gólók):
    print(‘A legkevesebb gólt : ‘,lista[i][0],’ rúgta! Póziciója : ‘,lista[i][1],sep=”)
    return gólók

    focisták = []

    forrásfájl = open(‘bemenet.txt’)
    for sor in forrásfájl:
    focisták.append(sor.strip().split())
    forrásfájl.close()

    legkevesebb_gól(focisták)

    Kedvelés

    • Halihó!
      Ha jól sikerült a behúzásokat helyreállítanom, akkor két nyűg van vele, kezdem a picivel, hátha a végére el is felejtődik:) A függvény alapvetően nem beszélget, nem ír eredményt, hanem visszaadja azt a hívónak, és majd az kiírja, amit kell. Ez most így eljárás, nem függvény, ebből a szempontból (lásd: https://pythonidomar.wordpress.com/2016/12/06/erre-megvannak-az-embereim/). Bár adsz vissza értéket, azt nem használod fel.

      A nagyobbik, amitől kifejezetten hibás lesz a megoldás, az az, hogy a legkisebb gólt csak az eddigiekhez képest veszed észre. (Ezt értsd meg, addig ne menj tovább.)

      Teszteld le úgy a programodat, hogy folyamatosan csökkenő gólokat adsz meg mindenkinek: mindenkit meg
      fog találni, mert az eddigiek közül az övé a legkisebb.

      Ezért dolgozunk két lépésben: először megkeressük a legkevesebb gólt az egész mezőnyben, és aztán megnézzük, hogy kinek van annyi.

      Kedvelik 1 személy

  11. Nagyon szépen köszönöm ezt a gyors választ!
    Valóban ha csökkenő sor rendbe állítom be a gólókat nem úgy működik mint amit elképzeltem.
    Háát nagy fejtörés volt még ígyis meg érteni ,hogy miért viselkedik így programom de ,hogy rá mutattál
    vissza nézegettem a videokat ééésss BINGO 😀
    Nagy dilemmám volt a visszatérési érték kiválasztásával ,hogy milesz a visszatérési értéke a függvényemnek ??? ,de most már azt is értem az lesz maga az eredménye és azzal robogok búzgón vissza!
    Köszönöm szépen még 1x rengeteget segitettél!!

    Kedvelés

  12. Szia!

    F0029c-nél mennyire elfogadható ez a megoldás?:

    forras = open(“file123.txt”)

    def szamolo(poszt):
    szam = 0
    for sor in forras:
    sima = sor.split()
    if poszt in sima:
    szam = szam + 1
    print(“A csapatban”, szam, poszt, “van.”)

    Szép napot!

    Kedvelés

    • Ez suliban még alighanem ötös, szóval jó vagy, de fejlesztői szemmel hadd említsek meg két bajt:
      az egyik egy nem figyelés, nem teljesítetted a feladatkiírást (márpedig a programozó specifikáció után dolgozik, ha minden jól megy): “A függvény két paramétere a 2D lista, illetve a megszámolandó játékosok posztja.” Ezzel a a baj, hogy ha a kollégád írja azt a programrészt, ami a függvényedet használja, akkor nem fog menni a programotok. De ezt még ráérsz megtanulni:)
      A másik hiba sem túl komoly, de azért elmondom, hogy tanuld a gondolkodásmódot. Mondjuk, hogy valakinek nem a keresztneve, hanem a vezetékneve szerepel, és épp Csatár Béla a neve, de közben meg hátvéd. A programod még mindig nem találja meg, mert a csatár nem Csatár, de ha ehhez veszünk egy edzőt, aki a posztot nagybetűvel kezdi, akkor kész a baj. Az igazi programok nagyon nagy része azzal van elfoglalva, hogy hülyeálló legyen, érdemes mindenre számítanod, pl. ilyesmire is.

      Kedvelik 1 személy

  13. Ah köszi, amikor így próbáltam, kaptam egy TypeError: gólszámláló() takes 2 positional arguments but 3 were given-t, és azt hittem így nem lehet, de akkor valószínű csak a zárójel rossz oldalára írtam a ‘db gól’-t 😀

    Kedvelés

    • tgen:) ez kb ennyi:) mármint: 3 dolog volt a zárójelben, de csak kettőt várt a függvényed, és összecsinálta magát tanácstalanságában:)

      Kedvelés

  14. Szia Ráérek

    Az alábbi problémákba ütköztem a g feladatnál a függvényemmel:
    -ha beírom a printbe a posztot akkor működik de kiír egy ‘None’-t is a végén.
    -próbáltam cifrázni és egy inputot beilleszteni a függvény bemeneti értékéhez, de nem sikerült életre kelteni, zerodivision hibát ír, tehát a függvényben levő játékos változót valamiért nullán hagyja de nem értem hogy miért. Az input kéri az adatot, de az valamiért nem jó a függvénynek, hiába írom be úgy mint ahogy a fájlban van.
    https://pastebin.com/95sgCGpU

    Kedvelés

    • Az a nyűg, hogy te a függvényed utolsó előtti sorában nem kiszámolod, hanem kiírod az adatot. A kiírást függvényben lévő print a print végzi, és az a None a print visszatérési értéke ()ugye a print maga is egy beépített függvény). Ez kerül bele az eredmény nevű változódba, és ezt adja vissza a return. És így ezt írja ki a másik, a főprogramban lévő print.

      A megoldás lehet, hogy
      vagy a függvény kiírja az eredményt, és akkor nem kell betöltened az eredmény nevű változóba, illetve nem is adsz vissza semmit (nincs return a függvényben, ilyenkor ugye nem is függvény, hanem eljárás a neve, csak ezt a kettőt a python nem különbözteti meg
      vagy nincs print a függvényben, csak kiszámolod és visszaadod az eredmény értékét, és majd a főprogram írja ki.

      Ha nem vili, akkor írd meg ezt a programot:

      def függvény()
      eredmény = print(‘bármi’) #ez kiírja, hogy bármi
      return eredmény
      print(függvény) #ez meg azt, hogy None, ami a másik print visszatérési értéke

      Kedvelés

  15. Szia ráérek!

    A F0029a feladatnál, a két megoldást egymás után szeretném kiírni, de sajnos egybe nem megy, de külön pedig igen. Mi ennek az oka? Ezekszerint nem tudom kétszer úgy végigmenni a forrásfájlban, hogy csak egyszer nyissam meg a txt?

    lista=[]
    forrásfájl=open(‘bemenet2.txt’)

    for sor in forrásfájl:
    lista.append(sor.strip().split()[0])
    print(‘, ‘.join(lista))

    for sor in forrásfájl:
    print(sor.strip().split()[0],’, ‘,sep=”,end=”)
    print()

    forrásfájl.close()

    Kedvelés

  16. Szia raerek!
    Már régóta nézem a videóidat, de úgy tűnik csak most jött el az idő, hogy hozzászóljak valamelyikhez.
    Idén szeretnék érettségizni infóból, a programozási részét a te videóidból próbálom megtanulni. Őszintén, én már leérettségiztem, de szeretnék infóból is egy emelt szintűt. Infó faktra jártam, de viszont valamiért nem jött be a programozás, így leadtam. Most egy évvel később megint belepróbáltam és valamiért megváltozott az álláspontom, megkedveltem a programozást. Ha jól emlékszem vagy videódban vagy a weboldalon mondtad/írtad, hogyha valamelyik iskolában a te videóidat is felhasználják, oktatásként akkor írjuk le, a tanár a te weboldaladat ajánlotta gyakorlásként(és szerintem ő is innen merítette az órák anyagait), így találtam rád én is(suli alatt is néztelek csak nem foglalkoztam a programozással annyit). Mint ezt már sokan megtették, én is szeretném megköszönni a munkádat, rettentően jól magyarázod el a dolgokat. Azért, hogy ne csak rizsa legyen jöttem egy problémával:
    def tenmatch(lista):
    mennyi = str(10)
    ki = []
    for elem in lista:
    if elem[2] >= mennyi:
    ki.append(elem[0])
    return ki

    lista = []
    forrásfájl = open(“foci.txt”)

    for sor in forrásfájl:
    lista.append(sor.strip().split())

    print(tenmatch(lista))

    Itt az lenne a problémám, hogyha a mennyi = 10 akkor mindenkit belevesz a listába, ellenkező esetben mindenkit jól leír, pl 9-nél a 9 meccseseket beleveszi a listába kivéve szegény Bélát nem.

    Remélem ennyi sok idő után is itt vagy az oldalon.
    Még egyszer köszönöm a munkádat, várom a válaszodat, szia!

    Kedvelés

    • Köszönöm a méltatást, és hoooógyne lennék:)
      Szóval a programodban a mennyit stringként hasonlítod össze, és ez okozza a problémát (már ha jól értem a problémafelvetésedet).
      str(10) és str(9) közül a 9 a nagyobb, mert 9>1, a stringek összehasonlításakor ugyanis csak az első karaktert veszi figyelembe, ha az egyezik, akkor a másodikat és így tovább. Mint a hogy te is ABC-be rendezel.
      A kevésbé jó megoldás az, ha nem a mennyit alakítod stringgé, hanem az elem[2]-t számmá, és úgy hasonlítod össze őket.
      Az igazi jó megoldás meg az, ha a számokat már a fájl beolvasás a során számmá alakítod.

      Kedvelés

Hozzászólás