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 03:33 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za červen (YouTube).

    Ladislav Hagara | Komentářů: 0
    dnes 02:33 | Nová verze

    Libreboot (Wikipedie) – svobodný firmware nahrazující proprietární BIOSy, distribuce Corebootu s pravidly pro proprietární bloby – byl vydán ve verzi 25.06 "Luminous Lemon". Přidána byla podpora desek Acer Q45T-AM a Dell Precision T1700 SFF a MT. Současně byl ve verzi 25.06 "Onerous Olive" vydán také Canoeboot, tj. fork Librebootu s ještě přísnějšími pravidly.

    Ladislav Hagara | Komentářů: 0
    dnes 01:33 | Komunita

    Licence GNU GPLv3 o víkendu oslavila 18 let. Oficiálně vyšla 29. června 2007. Při té příležitosti Richard E. Fontana a Bradley M. Kuhn restartovali, oživili a znovu spustili projekt Copyleft-Next s cílem prodiskutovat a navrhnout novou licenci.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Nová verze

    Svobodný nemocniční informační systém GNU Health Hospital Information System (HIS) (Wikipedie) byl vydán ve verzi 5.0 (Mastodon).

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Komunita

    Open source mapová a navigační aplikace OsmAnd (OpenStreetMap Automated Navigation Directions, Wikipedie, GitHub) oslavila 15 let.

    Ladislav Hagara | Komentářů: 0
    včera 11:55 | Zajímavý software

    Vývojář Spytihněv, autor počítačové hry Hrot (Wikipedie, ProtonDB), pracuje na nové hře Brno Transit. Jedná se o příběhový psychologický horor o strojvedoucím v zácviku, uvězněném v nejzatuchlejším metru východně od všeho, na čem záleží. Vydání je plánováno na čtvrté čtvrtletí letošního roku.

    Ladislav Hagara | Komentářů: 29
    1.7. 18:22 | IT novinky

    V uplynulých dnech byla v depu Českých drah v Brně-Maloměřicích úspěšně dokončena zástavba speciální antény satelitního internetu Starlink od společnosti SpaceX do jednotky InterPanter 660 004 Českých drah. Zástavbu provedla Škoda Group. Cestující se s InterPanterem, vybaveným vysokorychlostním satelitním internetem, setkají například na linkách Svitava Brno – Česká Třebová – Praha nebo Moravan Brno – Břeclav – Přerov – Olomouc.

    Ladislav Hagara | Komentářů: 19
    1.7. 13:11 | Nová verze

    Byla vydána nová verze 8.7.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

    Ladislav Hagara | Komentářů: 0
    1.7. 12:22 | IT novinky

    Před 30 lety, k 1. 7. 1995, byl v ČR liberalizován Internet - tehdejší Eurotel přišel o svou exkluzivitu a mohli začít vznikat první komerční poskytovatelé přístupu k Internetu [𝕏].

    Ladislav Hagara | Komentářů: 4
    1.7. 11:33 | Nová verze

    Byla vydána (𝕏) nová verze 7.4 open source monitorovacího systému Zabbix (Wikipedie). Přehled novinek v oznámení na webu, v poznámkách k vydání a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (28%)
     (6%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 340 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.