Co bylo nového v Python 2.4
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Co bylo nového v Python 2.4Co bylo nového v Python 2.4

 

Co bylo nového v Python 2.4

Google       Google       22. 8. 2006       15 435×

Přináším vám výběr z novinek v Python 2.4, přestože je na světě již nějakou tu dobu. Čerpal jsem z Whats new in Python 2.4. Vybíral jsem témata, která by mohla zajímat hlavně přihlášené ve zdejším kurzu, tedy žádné „složité“ věci.

Množiny

Přestože množiny byly již i v předchozí verzi (jako samostatný modul), nyní byly přidány přímo do vestavěných funkcí. Množiny jsou velmi podobné seznamům, určitý prvek se však v nich může vyskytovat jen jednou, a poskytují funkce, které obvykle od množin očekáváme: průnik, rozdíl, sloučení, apod.

>>> a = set('abracadabra')              # vytvoří množinu z řetězce
>>> 'z' in a                            # test na existenci prvku
False
>>> a                                   # samotná množina
set(['a', 'r', 'b', 'c', 'd'])
>>> ''.join(a)                          # převod zpět na řetězec
'arbcd'

>>> b = set('alacazam')                 # vytvoří druhou množinu
>>> a - b                               # písmena, která jsou v a, ale ne v b
set(['r', 'd', 'b'])
>>> a | b                               # sloučení množin
set(['a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'])
>>> a & b                               # průnik množin
set(['a', 'c'])
>>> a ^ b                               # doplněk průniku množin
set(['r', 'd', 'b', 'm', 'z', 'l'])

>>> a.add('z')                          # přidá nový prvek
>>> a.update('wxy')                     # přidá několik nových prvků
>>> a
set(['a', 'c', 'b', 'd', 'r', 'w', 'y', 'x', 'z'])       
>>> a.remove('x')                       # odebere jeden prvek
>>> a
set(['a', 'c', 'b', 'd', 'r', 'w', 'y', 'z'])

rsplit()

Řetězce získaly další metodu rsplit(), která funguje jako split(), ale pracuje od konce řetězce (r jako right).

# 1 jako volitelný argument znamená, že se má najít jen jeden (první) výskyt „.“
>>> 'www.python.org'.split('.', 1)  
['www', 'python.org']
'www.python.org'.rsplit('.', 1)
['www.python', 'org']

Vylepšené sort() u seznamů

Byly přidány tři pojmenované argumenty cmp, key a reverse k metodě seznamů sort(). Seznamy se tak dají snadněji řadit:

>>> L = ['A', 'b', 'c', 'D']
>>> L.sort()                 # řazení case-sensitive (závisí na velikosti písmen)
>>> L
['A', 'D', 'b', 'c']
>>> # použití argumentu key
>>> L.sort(key=lambda x: x.lower())
>>> L
['A', 'b', 'c', 'D']

Argument key je možné ještě zjednodušit:

>>> L.sort(key=str.lower)
>>> L
['A', 'b', 'c', 'D']

key je pojmenovaný argument, lower je metoda seznamů, která převádí vše na malá písmena (zde výjimečně bez závorek ()). Kde se ale vzalo to str? To je typ řetězců,

>>> str
<type 'str'>

který se dá získat také takto (pokud zapomenete to „str“):

>>> type("")
<type 'str'>

sorted()

Přibyla nová vestavěná funkce sorted(). Funkce sort() totiž mnoho začátečníků mate, protože seřazený seznam nevrací, ale řadí na místě:

# špatně
>>> S=["z", "a", "d"]
>>> S1=S.sort()
>>> print S1
None  # 

# správně:
>>> S=["z", "a", "d"]
>>> S.sort()
>>> S
['a', 'd', 'z']

Funkce sorted() tuto nepříjemnost odstraňuje – výsledek vrací. Pozor, není to metoda, ale funkce:

>>> S1=sorted(S)
>>> print S1 
["a","d","z"]
 

None

None je nyní konstanta. Nelze ji již přepsat, jako dříve:

>>> None="nic"
SyntaxError: assignment to None

Optimalizace

Optimalizace mnoha vnitřních algoritmů přinesla zvýšení rychlosti o 5 % oproti Python 2.3 a o 35 % oproti Python 2.2. Měřeno benchmarkem pystone. Zrychlení vašich vlastních aplikací může být větší nebo menší.

Zdroj: http://www.python.org/doc/2.4.2/whatsnew

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

4 názory  —  4 nové  
Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Pavel KosinaAutor programuje v Pythonu.
Web    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý