Portál AbcLinuxu, 10. května 2025 21:51
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í ?
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, ...))
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í.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.