Portál AbcLinuxu, 23. listopadu 2025 23:50
Řešení dotazu:
print(array[1][barva]) # červená print(array[1][stav]) # zobrazenoatd.. Děkuji
katalog = {
1: {'barva': 'červená', 'stav': 'zobrazeno'},
5: {'barva': 'černá', 'stav': 'neviditelný'},
}
katalog[8] = {'barva': 'modrá', 'stav': 'vyprodáno'}
print(katalog[1]['barva']) # červená
print(katalog[8]['stav']) # vyprodáno
Ovšem dal bych raději přednost objektovějšímu řešení.
class Item:
def __init__(self, barva, stav):
self.barva = barva
self.stav = stav
katalog = {}
katalog[1] = Item('červená', 'zobrazeno')
katalog[5] = Item('černá', 'neviditelný')
katalog[7] = Item(barva='modrá', stav='vyprodáno')
katalog[9] = Item(stav='novinka', barva='bílá')
print(katalog[7].stav) # vyprodáno
print(katalog[9].barva) # bílá
from collections import namedtuple
Item = namedtuple('Item', 'barva stav')
katalog[5] = Item('černá', 'neviditelný')
katalog[7] = Item(barva='modrá', stav='vyprodáno')
Jinak katalog[1], katalog[5], katalog[7], katalog[9] jsou jako objekty té class ? Pokud ano, každá ta položka vytváří nová objekt ?
Díky za upřesnění...
Musím předat parametrem i tu samotnou class Item, nebo co můžu mít špatně ?
dict() je dobré, pokud se chystáš něco vepsat mezi ty závorky, co třeba generuje seznam dvojic pro vytvoření slovníku.
array = []
array.append({"barva": "cervena", "stav": "vypnuto", "cislo": 666})
print array[0]["barva"]
print array[0]["stav"]
print array[0]["cislo"]
print(katalog['kde']['co'][0]) print(katalog['kde']['co'][1]) print(katalog['kde']['co'][2])Děkuji L.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.