Kezdőoldal » Számítástechnika » Programozás » Python lista elemeket csoporto...

Python lista elemeket csoportositani?

Figyelt kérdés

Pl vannak kulonbozo adataim.

Telepules

Homerseklet.

[BP 12]

[DE 11]

[BP 16]

ES IGY tovabb...

Hogy tudom azt megoldani hogy osszegyujtom az osszes varost es az egyszer jelenjen meg es mellette a homerseklet?

Igy BP 12,16,11,12 stb


2021. okt. 21. 15:42
1 2
 1/11 Pelenkásfiú ***** válasza:

Egy lehetőség:


from collections import defaultdict


lista = [['BP', 12], ['DE', 11], ['BP', 16]]


d = defaultdict(list)


for l in lista:

d[l[0]].append(l[1])

2021. okt. 21. 16:10
Hasznos számodra ez a válasz?
 2/11 A kérdező kommentje:
Ezt nem ertem, mi ez?
2021. okt. 21. 16:19
 3/11 A kérdező kommentje:
Mihez adom hozza es mi ez pontosan? Nem nagyon ertem ezt
2021. okt. 21. 16:24
 4/11 Pelenkásfiú ***** válasza:

A defaultdict olyan, mint a "sima" dict, de nem kell vizsgálnod, hogy létezik-e benne az adott kulcs, mert ha nem, akkor létrehozza automatikusan olyan típussal, amit megadtál neki paraméterként.

Pl: defaultdict(int) esetén 0 lesz az érték

defaultdict(list) esetén üres lista.


Szóval egy olyan dictionary-t hozunk létre, aminek a kulcsai a városok, az értékek pedig listák, amikben gyűjtjük a számokat.

Az append ehhez a listához veszi fel mindig az új hőmérséklet értékeket.

2021. okt. 21. 16:26
Hasznos számodra ez a válasz?
 5/11 anonim ***** válasza:

Itt egy egyszerűsített, de hozzáfűzésekkel dokumentált példa (mivel gyanítom a kedves kérdező tanuló, ezért az alapokkal érdemes tisztában lennie), a Python beépített alap függvényeire és adattípusaira alapozva - a felső "Run" gombra kattintva látható az eredmény:

[link]


Tehát kedves kérdező, a településeket és a hozzá tartozó hőmérsékletet jelen esetben egy két dimenziós listában (nevezhetjük akár táblázatnak is, aminek sorai és oszlopai vannak) tároljuk.


Mivel ebben a listában egy város többször is előfordulhat, csoportosítani szeretnénk.

Ehhez egy szótár (dictionary) adattípust használunk.


A szótár egy olyan adattípus, aminek van egy kulcsa és egy hozzá tartozó értéke - például:

kutya = {

"neve": "Morzsi",

"fajta": "puli",

"színe": "fekete"

"tömege": 13

"jelleme": ["bátor", "ugatós", "mozgékony"]

}

itt a "kutya" egy szótár típusú változó, aminek vannak "neve", "fajta", "színe", "tömege" és "jelleme" kulcsai (a kulcsokat a keys() metódussal tudjuk kilistázni) és hozzájuk tartozik egy "Morzsi", "puli", "fekete" karakterláncok, a 13-as szám és a ["bátor", "ugatós", "mozgékony"] lista, mint érték.


Ha egy kulcshoz tartozó értéket akarunk lekérdezni, azt így tudjuk megtenni:

kutya["neve"]

a visszaadott érték

Morzsi

lesz.


Ha a szótárhoz akarunk egy új értéket felvenni, azt így tehetjük meg:

kutya["neme"] = "kan"


Jelen példában a csoportosításhoz használt szótár kulcsai a városok, a hozzá tartozó értékek pedig listák, amiben az adott városhoz tartozó hőmérsékletek vannak (ez utóbbi listát az append() metódussal lehet bővíteni).

2021. okt. 21. 18:38
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:
48%

Ok, a kételemű listából álló lista valójában egy táblázat. Ha Python és táblázat, akkor pandas:


import pandas as pd

lista = [['BP', 12], ['DE', 11], ['BP', 16], ['DE', 14], ['BP', 26]]

(

pd.DataFrame(lista, columns= ['varos', 'homerseklet'])

.groupby('varos')

.agg(list)

)


Ennyi.

2021. okt. 23. 00:27
Hasznos számodra ez a válasz?
 7/11 A kérdező kommentje:

Köszönöm, de így oldottam meg.

varosok = []

for sor in adatok:

if sor[0] not in varosok:

varosok.append(sor[0])


print(varosok)


for varos in varosok:

homerseklet = []

for sor in adatok:

if varos == sor[0]:

homerseklet.append(sor[3])

print(varos,homerseklet)

2021. okt. 23. 08:02
 8/11 Pelenkásfiú ***** válasza:

Jaj, ez így szörnyű! No offense.

Annyiszor végigmész a teljes adatsoron, ahány várost találtál.


Az #5-ös olyan szépen leírta. Ott a link is.

Nézd meg még egyszer!

2021. okt. 23. 08:08
Hasznos számodra ez a válasz?
 9/11 A kérdező kommentje:
Nekem az bonyolult, én így ahogy írtam végig tudom gondolni :D illetve nem akarok használni listán kívűl mást
2021. okt. 23. 08:10
 10/11 Pelenkásfiú ***** válasza:
Ja, akkor jó....
2021. okt. 23. 08:12
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!