Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-03-01 19:44:34

  ukasz - Użytkownik

ukasz
Użytkownik
Skąd: wroclaw
Zarejestrowany: 2006-06-21

python3 zagniezdzone slowniki w liscie

czesc

taka zagwozdka. majac kilka slownikow w liscie np:

Kod:

[{'.id': '*0',
  'address': '',
  'disabled': False,
  'invalid': False,
  'name': 'telnet',
  'port': 23},
 {'.id': '*1',
  'address': '',
  'disabled': False,
  'invalid': False,
  'name': 'ftp',
  'port': 21},
 {'.id': '*2',
  'address': '',
  'disabled': False,
  'invalid': False,
  'name': 'www',
  'port': 80},
 {'.id': '*4',
  'address': '',
  'disabled': False,
  'invalid': False,
  'name': 'ssh',
  'port': 22},
 {'.id': '*6',
  'address': '',
  'certificate': 'none',
  'disabled': True,
  'invalid': True,
  'name': 'www-ssl',
  'port': 443},
 {'.id': '*7',
  'address': '',
  'disabled': False,
  'invalid': False,
  'name': 'api',
  'port': 8728},
 {'.id': '*8',
  'address': '',
  'disabled': False,
  'invalid': False,
  'name': 'winbox',
  'port': 8291}]

chce wyciagnac pojedynczy slownik z calej listy. do tej pory uzywalem wyrazenia:

Kod:

[d for d in lista_z_slownikami if d.get('name') == 'ftp'][0]

jednak ma to minus poniewaz:
1 moze nie byc danego slownika w liscie (spelniajacego wymagania). wtedy trzeba robic try, except z indexerror
2 jest ta nadmiarowosc twozenia listy i wyciagania pierwszego elementu z listy


robiac

Kod:

(d for d in lista_z_slownikami if d.get('name') == 'ftp')

zwracany jest generator. z generatora nie da sie zrobic slownika.

no i jak to zrobic zeby "za jednym zamachem" (zeby bylo to czytelne) wyciagnac interesujacy mnie slownik

macie jakies pomysly ? moze poprostu nie da sie ?


http://wiblo.pl/wilk/userbars/debian_user_black.png

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)