Kezdőoldal » Számítástechnika » Programozás » Python, egyszerű lista kezelés...

Python, egyszerű lista kezelés, van erre valami beépített könyvtár?

Figyelt kérdés

Pl ilyenekből áll a lista:

[['A', '0000', '3', '23'], ['K', '0015', '15005', '23'], ['SM', '0015', '01013', '21'], ['PA', '0015', '34016', '20'], ['SN', '0015', '17004', '24'], ['PR', '0015', '31018', '21']]


van erre valami jó metódus,hogy könnyen lehessen kezelni ezeket?


2021. okt. 19. 15:58
 1/4 anonim ***** válasza:

Mit takarnak ezek az értékek?

Mit értesz azon, hogy "könnyen lehessen kezelni ezeket"?

2021. okt. 19. 16:05
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

['A', '0000', '3', '23']

A = Titulusa.

0000 = képesítés kódja.

3 = egyedi azonosító

23 = életkor.


Szeretném könnyen össze számolni pl az éltekorokat, átlagolni,egyedi azonosító alapján sorba rendezni stb..

2021. okt. 19. 16:10
 3/4 anonim ***** válasza:

Perszehogy van. Látszik, hogy a kis listáid mind ugyanazt a struktúrát követik: van egy string, aztán három szám. Ezeknek biztosan tudsz nevet is adni. Ha sikerül elnevezni öket, akkor csinálhatsz belölük lista helyett valami célnak megfelelö adatstruktúrát, például objektumot:


from dataclasses import dataclass



@dataclass

class FurcsaDolog:

____betuk: str

____elso_szam: int

____masodik_szam: int

____harmadik_szam: int



raw_data = [['A', '0000', '3', '23'], ['K', '0015', '15005', '23'], ['SM', '0015', '01013', '21'], ['PA', '0015', '34016', '20'], ['SN', '0015', '17004', '24'], ['PR', '0015', '31018', '21']]


pretty_data = [FurcsaDolog(*l) for l in raw_data]


>> print(pretty_data[0])


FurcsaDolog(betuk='A', elso_szam='0000', masodik_szam='3', harmadik_szam='23')


>> print(pretty_data[0].elso_szam)

'0000'


így egyel jobban néz ki.


Lehet, hogy az elsö adattag('A', 'K', 'SM', ...stb) az valami azonosító, és szeretnéd a megfelelö struktúrát azon keresztül elérni. Ebben az esetben a külsö listának se listának kéne lennie, hanem mondjuk egy dict-nek:


>> pretty_data_dict = {l[0]: FurcsaDolog(*l) for l in raw_data}


>> print(pretty_data_dict['SM'])


FurcsaDolog(betuk='SM', elso_szam='0015', masodik_szam='01013', harmadik_szam='21')

2021. okt. 19. 16:17
Hasznos számodra ez a válasz?
 4/4 Pelenkásfiú ***** válasza:

x = [['A', '0000', '3', '23'], ['K', '0015', '15005', '23'], ['SM', '0015', '01013', '21'], ['PA', '0015', '34016', '20'], ['SN', '0015', '17004', '24'], ['PR', '0015', '31018', '21']]


sum(int(i[3]) for i in x)

sum(int(i[3]) for i in x) / len(x)

sorted(x, key=lambda x: x[2])

sorted(x, key=lambda x: int(x[2]))

2021. okt. 19. 16:18
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!