l=[x for x in iterable]
? Není lepší zapsat l=list(iterable)
?
Další naprosto fatální chyba - ukázka práce s dictionary (slovníky). Zkoušel jste si onen příklad s for x in d.keys().reverse():
v Pythonu 2.x? Pravděpodobně ne, protože byste zjistil, že on ani ve 2.x nefunguje. Problém je v tom, že metoda seznamu reverse()
provádí otočení pořadí v místě a vrací None
. A další pro mě velice důležitá věc - můžete mi naznačit případ z praxe, kde jste potřeboval otočit pořadí klíčů z dictionary? Ona dictionary totiž drží klíče neřazené a tudíž není zaručeno, že voláním keys()
získate vždy tutéž posloupnost.
Další věcná chyba byla u příkladu s řazením - to řazení, které jste napsal pomocí str.lower()
je bez ohledu na velikost písmen!
Další vaše fatální pochybení je u odstavce porovnávajícím bytes a str typy. Zapomněl jste zmínit změnu nejzásadnější - typ bytes je proměnný (mutable) typ, čili ho nemůžete použít jako klíče do slovníku! Typ str je oproti tomu neměnný. Důsledky z toho vyplývající si pravděpodobně domyslíte.
Nehci vám sahat do svědomí, ale mohu se zeptat kolik kódu jste napsal v Pythonu 2.x? A kolik v 3.x?
Omlouvám se všem za "rýpavý" příspěvek, ale takto nepřesný článek hned poránu mě pěkně nadzvedl ze židle. Přeji pěkný den,
Jan Švec
However, I do want to mention that based upon the feedback for 3.0a1, we've decided to make the 'bytes' type immutable, and create a separate mutable bytes type, 'bytearray'. These two types are mutually compatible, but in the majority of cases you'll be using bytes, not bytearray.
JŠprint "foo='%s' bar='%s'" % (foo, bar)na
print("foo='{0}' bar='{1}'".format(foo, bar))alebo si take nieco musim napisat sam? Mate s tym niekto skusenost?
for:
...
#endfor
tak se v nem pri kopirovani kusu kodu ztratim :)