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í
×
    včera 14:00 | Zajímavý článek

    Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).

    Ladislav Hagara | Komentářů: 0
    včera 12:00 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.

    Ladislav Hagara | Komentářů: 0
    17.7. 18:44 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).

    Ladislav Hagara | Komentářů: 1
    17.7. 16:11 | Nová verze

    Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 2
    17.7. 15:55 | Komunita

    Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.

    Ladislav Hagara | Komentářů: 5
    16.7. 21:22 | IT novinky

    Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.

    Ladislav Hagara | Komentářů: 19
    16.7. 16:22 | IT novinky

    Vláda dne 16. července 2025 schválila návrh nového jednotného vizuálního stylu státní správy. Vytvořilo jej na základě veřejné soutěže studio Najbrt. Náklady na přípravu návrhu a metodiky činily tři miliony korun. Modernizovaný dvouocasý lev vychází z malého státního znaku. Vizuální styl doprovází originální písmo Czechia Sans.

    Ladislav Hagara | Komentářů: 26
    16.7. 15:33 | Upozornění

    Vyhledávač DuckDuckGo je podle webu DownDetector od 2:15 SELČ nedostupný. Opět fungovat začal na několik minut zhruba v 15:15. Další služby nesouvisející přímo s vyhledáváním, jako mapyAI asistent jsou dostupné. Pro některé dotazy během výpadku stále funguje zobrazování například textu z Wikipedie.

    bindiff | Komentářů: 8
    16.7. 13:33 | Bezpečnostní upozornění

    Více než 600 aplikací postavených na PHP frameworku Laravel je zranitelných vůči vzdálenému spuštění libovolného kódu. Útočníci mohou zneužít veřejně uniklé konfigurační klíče APP_KEY (např. z GitHubu). Z více než 260 000 APP_KEY získaných z GitHubu bylo ověřeno, že přes 600 aplikací je zranitelných. Zhruba 63 % úniků pochází z .env souborů, které často obsahují i další citlivé údaje (např. přístupové údaje k databázím nebo cloudovým službám).

    Ladislav Hagara | Komentářů: 5
    16.7. 00:11 | Nová verze

    Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (27%)
     (7%)
     (3%)
     (0%)
     (1%)
     (4%)
    Celkem 410 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Standardní knihovna pro Python - 3 (builtins 3)

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

    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.