Python3, rendezes pontszam alapjan csokkenosorban, majd azon belul abc sorban?
Ezt szeretnem rendezni:
{'zed': 3, 'revenge': 3, 'lajos': 3, 'bubo': 3, 'adel': 3, 'robert': 2, 'geza': 2, 'coni': 2, 'bandi': 2, 'anita': 2}
Ugy hogy adel bubo lajos revenge zed coni geza robert anita bandi legyen a sorrend!
Elirtam bocsanat, tehat a sorrendnek ennek kene lennia:
adel bubo lajos revenge zed anita bandi coni geza robert
Hagyományos dictionary adattípussal nem lehet - nem jegyzi meg a sorrendet.
Én azt javasolnám, hogy a dictionary-t alakítsd át egy listává, ahol a lista egy-egy eleme tartalmazza a dictionary kulcsát (a nevet), és az adott kulcshoz tartalmazó értéket (a pontszámot), majd a listát rendezd:
A dict adattípus a key,value párok tárolására lett kitalálva. Absztrakt szinten a bejárási sorrendje tetszőleges, nem megválasztható.
Ha a sorrend is számít arra van az OrderedDict:
from collections import OrderedDict
dict1 = {'zed': 3, 'revenge': 3, 'lajos': 3, 'bubo': 3, 'adel': 3, 'robert': 2, 'geza': 2, 'coni': 2, 'bandi': 2, 'anita': 2}
dict2 = OrderedDict( sorted(dict1.items(),key= lambda x : (-x[1],x[0])) )
A key,value párok egyesével is felvihetőek:
dict3 = OrderedDict()
dict3['valami'] = 1234
dict3['alma'] = 4
dict['foo'] = 42
Ekkor a sorrend a felvitel sorrendjében lesz.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!