Portál AbcLinuxu, 10. května 2025 21:51

Dotaz: Python: Pořadí prvků v poli

28.10.2005 19:23 trancelius | skóre: 22
Python: Pořadí prvků v poli
Přečteno: 733×
Odpovědět | Admin
str1 = "abc"
str2 = "xyz"
slovnik = {}

for i in range(len(str1)):
    slovnik[str1[i]] = str2[i]

print slovnik
- od tohoto jednoduchého cyklu bych očekával, že mi ty dva řetězce dá do asociativního pole v pořadí, v jakým je tam zadám. Jenže tam jsou v pořadí 'a', 'c', 'b' ... jak to ? Podle čeho se to řadí ?
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

28.10.2005 19:47 Jakub Hegenbart
Rozbalit Rozbalit vše Re: Python: Pořadí prvků v poli
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ne že bych byl pythonista, ale odkdy je, prosím pěkně, v asociativním poli něco seřazené? A jak by něco takového vůbec mělo být možné?
28.10.2005 19:54 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: Python: Pořadí prvků v poli
Dobře, když ale vypisuje prvky pole (print slovnik), podle čeho je řadí zrovna tak, když byly do pole vloženy v jiném pořadí ? Podle abecedního řazení to taky není ... např. kdybych dělal přes to pole iteraci (for znak in slovnik.keys()), tak by to pořadí hodně vadilo (a kdybych to dělal metodou slovnik[klic] ... tak bych pořeboval udělat ještě referenční pole s klíči (a, b, c, ...))
28.10.2005 21:14 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Python: Pořadí prvků v poli
Mezi klíči asociativního pole obecně nemusí být žádná relace uspořádání. Podle čeho by se ty prvky měly řadit? Třeba v tomto případě je klíčem číslice, řetězec a souborový deskriptor. Jediný způsob, jak je seřadit je si onu relaci definovat sám (tj. to tvé referenční pole).
import sys
slovnik={}
slovnik[1]='1'
slovnik['a']='a'
slovnik[sys.stderr]='stderr'
print slovnik
{'a': 'a', 1: '1', <open file '<stderr>', mode 'w' at 0xb7cea0b0>: 'stderr'}
To pořadí, co ti Python ukazuje je imho otázka jeho vnitřní implementace asociativních polí.
When your hammer is C++, everything begins to look like a thumb.
28.10.2005 21:19 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Python: Pořadí prvků v poli
Achjo, hlavně, že tu druhé poučuji a sám zapomínám na interpunkci. Laskavý čtenář, nechť si dosadí na příslušná místa čárky :-(.
When your hammer is C++, everything begins to look like a thumb.
28.10.2005 21:45 trancelius | skóre: 22
Rozbalit Rozbalit vše Re: Python: Pořadí prvků v poli
ok ... takže používat asociativní pole jako stack není zrovna vhodný (není "chronologicky" řazeno) ... že :)

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.