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

 
Hledat
Moderní platforma pro vytvoření vašeho nového webu – Wix.com.
Nyní už můžete mít web zdarma.
Vybavení pro Laser Game
Spuštěn Filmový magazín

Co bylo nového v Python 2.4

Google       Google       22. 8. 2006       12 262×

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.

Reklama
Reklama

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

Reklama
Reklama
Obrázek ke článku NopCommerce – datová vrstva a přístup k datům – 2. díl

NopCommerce – datová vrstva a přístup k datům – 2. díl

V minulém článku jsme si představili platformu NopCommerce z globálního pohledu. V dnešním díle se již zaměříme na konkrétní část systému, a to datovou vrstvu. Představíme si základní stavební kameny systému v podobě doménových objektů. Ukážeme si, jakým způsobem rozšířit doménové objekty a jakým způsobem přistupuje NopCommerce k nastavení systému a modulů.

Obrázek ke článku Seznamte se s open source platformou NopCommerce – 1. díl

Seznamte se s open source platformou NopCommerce – 1. díl

Hledáte e-commerce řešení, které si dokážete přizpůsobit podle vašich požadavků? Chcete čistý a srozumitelný kód, se kterým bude radost pracovat? Prozkoumejte s námi možnosti open source projektu NopCommerce. Seriál programování pod NopCommerce vám pomůže překonat první kroky nejistoty a úspěšně zvládnout vývoj pod platformou NopCommerce.

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