Portál AbcLinuxu, 20. prosince 2025 20:44
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.