Portál AbcLinuxu, 10. května 2025 19:14

Dotaz: Jak vytvořit složité pole, seznam v Pythonu

26.6.2015 22:45 Jan
Jak vytvořit složité pole, seznam v Pythonu
Přečteno: 411×
Odpovědět | Admin
Ahoj, studuji tady manuál ale nemůžu nikde najít, jak vytvořit složitější seznam/pole. Potřebuji něco takového, ale potřebuji to přidávát po jednom, ne nadefinovat celý seznam naráz.
seznam = [
1: 'a':'1aaa', 'b':'1bbb', 'c':'1ccc'
2: 'a':'2aaa', 'b':'2bbb', 'c':'2ccc'
3: 'a':'3aaa', 'b':'3bbb', 'c':'3ccc'
]
print(seznam[1]['a']) # 1aaa
print(seznam[2]['a']) # 2aaa
print(seznam[3]['c']) # 3ccc
Nepomůže prosím pěkně někdo ?

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jendа avatar 27.6.2015 00:06 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mně teda Python na tohle řekne invalid syntax. Nechceš spíš dictionary?
27.6.2015 00:11 Jan
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
Ano, syntaxně je to špatně, jelikož fakt nevím jak na to :-(
27.6.2015 00:15 Jan
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
Nechceš spíš dictionary?
Je mi to jedno, hlavně aby tam šlo přidávat další záznamy pro to společné id
27.6.2015 00:13 vrana
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nerozumim, co presne chces, protoze to co jsi tam zapsal je spis slovnik slovniku nez pole, ktery naplnis takto...
#!/usr/bin/env python

seznam = dict()

for i in range(1,4):
  seznam[i] = dict()
  for c in range(3):
    z=chr(ord('a')+c)
    seznam[i][z] = str(i)+z*3
print seznam
S vystupem:
{1: {'a': '1aaa', 'c': '1ccc', 'b': '1bbb'}, 2: {'a': '2aaa', 'c': '2ccc', 'b': '2bbb'}, 3: {'a': '3aaa', 'c': '3ccc', 'b': '3bbb'}}
27.6.2015 00:17 Jan
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
To je hezký, ale jak jsem již psal: potřebuji to přidávát po jednom, ne nadefinovat celý seznam naráz.
27.6.2015 00:20 vrana
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
co tim myslis "po jednom" ?
27.6.2015 00:23 Jan
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
Pokud budu vycházet z toho co jsi vygeneroval
{1: {'a': '1aaa', 'c': '1ccc', 'b': '1bbb'}, 2: {'a': '2aaa', 'c': '2ccc', 'b': '2bbb'}, 3: {'a': '3aaa', 'c': '3ccc', 'b': '3bbb'}}
tak potřebuji ještě později přidat třeba pro id 1 'd' : '1ddd' a výsledek bude
{1: {'a': '1aaa', 'c': '1ccc', 'b': '1bbb', 'd' : '1ddd'}, 2: {'a': '2aaa', 'c': '2ccc', 'b': '2bbb'}, 3: {'a': '3aaa', 'c': '3ccc', 'b': '3bbb'}}
27.6.2015 00:26 vrana
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
seznam = dict()

def pridej(i,z):
  if i not in seznam:
    seznam[i] = dict()
  seznam[i][z] = str(i)+z*3
27.6.2015 00:49 Jan
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
Super, díky moc. Tak jsem to myslel

Pokud použiji funkci 'přidej'
pridej('1', 'a')
pridej('1', 'b')
pridej('1', 'c')
získám výsledek
{'1': {'b': '1bbb', 'c': '1ccc', 'a': '1aaa'}}
ale proč to nejde vypsat ?
print(seznam[1]['a']) # dostanu chybu 'KeyError: 1'
Jendа avatar 27.6.2015 02:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak vytvořit složité pole, seznam v Pythonu
Přidáváš '1' a hledáš 1. Kdyžtak dict.keys().

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.