abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:11 | Humor

    Win8DE je desktopové prostředí pro Wayland, inspirované nechvalně proslulým uživatelským rozhraním Metro z Windows 8. Nabízí dlaždicové rozhraní s velkými tlačítky a jednoduchou navigací, optimalizované pro dotyková zařízení. Cílem projektu je přetvořit design operačního systému Windows 8 do funkčního a minimalistického rozhraní vhodného pro každodenní použití na Linuxu.

    NUKE GAZA! 🎆 | Komentářů: 7
    dnes 14:33 | Nová verze

    Laboratoře CZ.NIC vydaly Datovku 4.28.0 a Mobilní Datovku 2.6.0. Hlavní novinkou je ukládání rozpracovaných datových zpráv do konceptů. Datovka je svobodné multiplatformní aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.

    Ladislav Hagara | Komentářů: 2
    dnes 14:22 | Zajímavý projekt

    Unix Pipe Game je vzdělávací karetní hra zaměřená na děti a rodiče, která děti učí používat unixové příkazy prostřednictvím interaktivních úkolů. Klíčovým prvkem hry je využití symbolu | pro pipeline neboli 'rouru', který umožňuje propojit výstupy a vstupy jednotlivých unixových příkazů, v tomto případě vytištěných na kartičkách. Předpokládá se, že rodič má alespoň nějaké povědomí o unixových příkazech a jejich provazování pomocí |.

    … více »
    NUKE GAZA! 🎆 | Komentářů: 3
    dnes 13:55 | Zajímavý software

    PCIem je linuxový framework, který vytváří virtuální zařízení PCIe pomocí technik, které umožňují hostitelskému operačnímu systému rozpoznat tyto syntetické 'neexistující' karty jako fyzické zařízení přítomné na sběrnici. Framework PCIem je primárně zamýšlen jako pomůcka pro vývoj a testování ovladačů bez nutnosti použít skutečný hardware. Dle tvrzení projektu si fungování PCIem můžeme představit jako MITM (Man-in-the-Middle), který se nachází mezi ovladači a kernelem.

    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 05:33 | Bezpečnostní upozornění

    Byla nalezena vážná bezpečnostní chyba v telnetd z balíčku GNU InetUtils. Týká se verzí GNU InetUtils od 1.9.3 z 12. května 2015 až po aktuální 2.7 z 14. prosince 2025. Útočník může obejít autentizaci a získat root přístup, jelikož telnetd nekontroluje předaný obsah proměnné prostředí USER a pokud obsahuje "-f root"…

    Ladislav Hagara | Komentářů: 5
    včera 17:22 | Komunita

    Stanislav Aleksandrov předložil patch rozšiřující KWin (KDE Plasma) na 3D virtuální desktopové prostředí (videoukázka v mp4).

    Ladislav Hagara | Komentářů: 6
    včera 05:55 | IT novinky

    Digg (Wikipedie), "místo, kde můžete sdílet a objevovat to nejlepší z internetu – a nejen to", je zpět. Ve veřejné betě.

    Ladislav Hagara | Komentářů: 4
    včera 01:44 | Komunita

    Po .deb balíčcích Mozilla nově poskytuje také .rpm balíčky Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 11
    včera 00:33 | IT novinky

    Vývojové prostředí IntelliJ IDEA slaví 25. narozeniny (YouTube).

    Ladislav Hagara | Komentářů: 0
    19.1. 23:55 | IT novinky

    Vedení společnosti NVIDIA údajně povolilo použití milionů knih ze známého 'warez' archivu Anna's Archive k výcviku umělé inteligence, ačkoliv vědělo, že archiv tyto knihy nezískal legální cestou. Žaloba, ve které se objevují i citace interních dokumentů společnosti NVIDIA, tvrdí, že NVIDIA přímo kontaktovala Anna's Archive a požadovala vysokorychlostní přístup k datům knihovny.

    NUKE GAZA! 🎆 | Komentářů: 27
    Které desktopové prostředí na Linuxu používáte?
     (18%)
     (5%)
     (0%)
     (10%)
     (21%)
     (3%)
     (5%)
     (2%)
     (11%)
     (37%)
    Celkem 558 hlasů
     Komentářů: 16, poslední včera 17:04
    Rozcestník

    Standardní knihovna pro Python - 3 (builtins 3)

    15. 5. 2006 | Jakub Matys | Programování | 4962×

    Filtry, množiny, převod na reálná čísla, hashování.
    filter(function, list)

    Potřebujete-li získat prvky seznamu, které odpovídají jistým vámi definovaným pravidlům je tato funkce to pravé. Prvním parametrem je funkce, která přejímá jeden parametr - prvek pole a vrací True nebo False. Ta porovnává prvky posloupnosti. Druhým je seznam, n-tice, řetězec nebo jiný objekt, který podporuje procházení pomocí iterátorů. Je-li druhý parametr n-tice nebo řetězec, vrací filter stejný typ. Jinak vrací vždy seznam. Předá-li se jako první parametr None, budou vráceny všechny prvky, které mají hodnotu True.

    Jestliže se vám líbí krkolomnější zápisy, můžete také použít příkaz [item for item in list if function(item)]. Vypadá to sice úděsně, ale je v tom jistá logika: "do seznamu ulož item pro každý prvek item v posloupnosti list, pokud funkce function(item) vrací pravdu". Pro parametr None můžete použít velmi podobný příkaz: [item for item in list if item]. A místo posledního item můžete napsat i logický výraz, což při volání funkce filter() nelze (můžete však použít lambda funkci).

    >>> def funkce(x): # funkce pro porovnavani prvku seznamu
    ...     if x > -7 and x < 25 and (x%2 == 0):
    ...             return True
    ...     else: return False
    ...
    >>> seznam = [2,58,54,57,22,12,214,154,358,
    ... 24,458,5211,259,67,45,84,110,250,45,35,26,368,286,96,46]
    >>> filter(funkce, seznam) # vrati vyfiltrovany seznam
    [2, 22, 12, 24]
    >>> [x for x in seznam if funkce(x)] # jiny zapis, stejny vysledek
    [2, 22, 12, 24]
    >>> [x for x in seznam if x < 50] # pouziti vyrazu misto funkce
    [2, 22, 12, 24, 45, 45, 35, 26, 46]
    >>> retezec = 'nejaky podivny retezec'
    >>> filter(x != 'a' and x != 'o', retezec) # zde vyraz pouzit nelze
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    TypeError: 'bool' object is not callable
    >>> filter(lambda x:x != 'a' and x != 'o', retezec) # muzeme ale pouzit lambda funkci
    'nejky pdivny retezec' # vsimnete si, ze zde vraci funkce retezec
    >>>
    
    float(x)

    Funkce jednoduše převádí parametr x na reálné číslo. Parametr může být celé číslo (případně i dlouhé celé č.), reálné číslo nebo řetězec. Není-li předán žádný parametr, vrací 0.0.

    frozenset([iterable])
    set([iterable])

    Od verze 2.4 jsou v Pythonu k použití dva nové datové typy. Set - množina a frozenset - konstantní množina. Množiny mohou obsahovat jakýkoliv hashovatelný (neměnný) typ - proměnné, n-tice, třídy a jejich instance. Nemohou však obsahovat seznamy. Každá množina může obsahovat pouze jeden objekt určité adresy. Předáte-li tedy nějaké množině např. číslo 7 třikrát bude tato množina obsahovat jen jednu sedmičku. Množiny jsou neřazené kolekce objektů - nelze tedy získat indexy prvků množiny a přistupovat k nim náhodně. Můžete však procházet množiny pomocí cyklu for použitím iterátorů.

    Hlavní rozdíl mezi typy set a frozenset je, že frozenset je neměnná množina, kdežto set můžeme po vytvoření dále upravovat. Protože je frozenset konstantní, můžeme vypočítat hashovou hodnotu objektu funkcí hash(). Objekt typu set má definovány metody pro přidávání a mazání prvků množiny.

    mnoz.add(x) Přidá prvek x do množiny mnoz. Pokud jej množina už obsahuje, nebude přidán.
    mnoz.remove(x) Z množiny mnoz vymaže prvek x. Nebude-li nalezen, vyvolá výjimku KeyError.
    mnoz.discard(x) Pokud množina mnoz obsahuje prvek x, vymaže jej. Jinak nic nedělá.
    mnoz.pop() Vyjme prvek z množiny mnoz (bude vymazán). Vyvolává výjimku KeyError, pokud je množina prázdná.
    mnoz.clear() Vymaže všechny prvky množiny mnoz.

    Oba typy množin - konstantní i nekonstantní - dále obsahují metody pro práci s množinami. Pro tyto metody jsou přetíženy některé operátory. Vše naleznete v následující tabulce:

    m.issubset(n) nebo m <= n Kontroluje, zda je množina m podmnožinou n.
    m.issuperset(n) nebo m >= n Kontroluje, zda je v množině m obsažena množina n - tj. zda je m nadmnožinou n.
    m.union(n) nebo m | n Vrátí sjednocení množin.
    m.intersection(n) nebo m & b Vrátí průnik množin.
    m.difference(n) nebo m - n Vrátí rozdíl množin.
    m.symmetric_difference(n) nebo m ^ n Symetrická diference. Pracuje podobně jako XOR.
    m.copy() Vrací novou kopii objektu množiny m. Jedná se o mělkou kopii.

    Objekty typu set navíc obsahují metody, které umožňují přímo aktualizovat volající metodu.

    • m.union_update(n) nebo m |= n
    • m.intersection_update(n) nebo m &= n
    • m.difference_update(n) nebo m -= n
    • m.symmetric_difference_update(n) nebo m ^= n

    U všech druhů množin můžete také používat funkci len() a klíčové slovo in.

    >>> m = set([1,3,5,7]) # parametr je seznam
    >>> len(m) # velikost mnoziny
    4
    >>> n = set((2,4,6,8)) # parametr je n-tice
    >>> class tr:
    ...     x = 7
    ...
    >>> x = m.copy() # vytvoreni melke kopie mnoziny
    >>> x.issubset(m) # je x podmnozinou m?
    True
    >>> x.add(frozenset('retezec')) # pridani konstantni mnoziny do x
    >>> # 'e' bude v podmnozine pouze jednou
    >>> x.add((1,2,3)) # mnozina muze obsahovat n-tici,..
    >>> x.add(tr) # ..tridu..
    >>> x.add(tr()) # ..i instanci tridy
    >>> x
    set([1, 3, frozenset(['c', 'r', 'e', 't', 'z']), 7, <__main__.tr instance at 0xb7c016ec>, (1, 2, 3), <class __main__.tr at 0xb7c94e9c>, 5])
    >>> m
    set([1, 3, 5, 7])
    >>> n
    set([8, 2, 4, 6])
    >>> m.union(n) # sjednocene mnoziny
    set([1, 2, 3, 4, 5, 6, 7, 8])
    >>> m.intersection(x) # prunik mnozin
    set([1, 3, 5, 7])
    >>> x - m # rozdil mnozin; vraci x bez [1,3,5,7]
    set([<class __main__.tr at 0xb7c94e9c>, <__main__.tr instance at 0xb7c016ec>, frozenset(['c', 'r', 'e', 't', 'z']), (1, 2, 3)])
    >>> m ^ n # symetricka diference; vraci pouze ty prvky, ktere NEJSOU v obou mnozinach (XOR)
    set([1, 2, 3, 4, 5, 6, 7, 8])
    >>> for i in x: # prochazeni mnoziny promoci cyklu
    ...     print i
    ...
    1
    3
    frozenset(['c', 'r', 'e', 't', 'z'])
    7
    <__main__.tr instance at 0xb7c016ec>
    (1, 2, 3)
    __main__.tr
    5
    >>> hash(frozenset('konstantni mnozina')) # pouze konstantni mnoziny mohou vracet hashovou hodnotu
    1371327332
    >>>
    
    hash(object)

    Tato funkce vrací hodnotu hashe objektu argumentu. Vrácenou hodnotou může být pouze celé číslo. Argumentem může být pouze konstantní objekt. Používá se k rychlému porovnávání klíčů slovníků při vyhledávání. Předáte-li jako argumenty čísla různého typu, ale se stejnou hodnotou, budou mít vždy stejnou hodnotu hashe.

    >>> hash(7)
    7
    >>> hash(7L)
    7
    >>> hash(7.0)
    7
    >>> hash(7 + 0j)
    7
    >>>
    
           

    Hodnocení: 33 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    15.5.2006 09:19 trocha pravdy | skóre: 3 | blog: nic
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 3 (builtins 3)
    Na to, ze je to uz treti dil, tak je to porad celkem nuda. Co takhle dat odkaz na tyto funkcicky do standardni dokumentace a zacit konecne popisovat zajimavejsi (a obtiznejsi) moduly...
    15.5.2006 12:53 Dunric | skóre: 21
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 3 (builtins 3)
    Matrix: až vyhrajou stroje, bude konečně klid.
    Oni už dávno vyhráli, ale že by byl klid jsem si nevšiml. Ani tady v Matrixu ani v reálném světě ;-)

    Sorry za OT.

    In the garden sleeps a messenger ·
    15.5.2006 13:47 trocha pravdy | skóre: 3 | blog: nic
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 3 (builtins 3)
    Oni vyhrali? Tak to jsem asi videl jinej Matrix...
    15.5.2006 18:15 Martin | skóre: 10 | blog: Nádraží Perdido
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 3 (builtins 3)
    Asi jsi připojenej do jiný domény v rámci celýho Matrixu, kde to dopadlo jinak ;o)
    15.5.2006 23:37 JoHnY2
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 3 (builtins 3)
    DNS vladne svetu :) PS: stacila by poradna casticova vychrice od slunicka a vsichni se zblaznime, protoze vsechny verejny satelity pujdou k certu.
    16.5.2006 09:57 Dunric | skóre: 21
    Rozbalit Rozbalit vše Re: Standardní knihovna pro Python - 3 (builtins 3)
    nepochopil ;-)
    In the garden sleeps a messenger ·

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.