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 | Bezpečnostní upozornění

    V dokumentově orientované databázi MongoDB byla nalezena a v upstreamu již opravena kritická bezpečností chyba CVE-2025-14847 aneb MongoBleed.

    Ladislav Hagara | Komentářů: 0
    včera 23:11 | IT novinky

    Při úklidu na Utažské univerzitě se ve skladovacích prostorách náhodou podařilo nalézt magnetickou pásku s kopií Unixu V4. Páska byla zaslána do počítačového muzea, kde se z pásky úspěšně podařilo extrahovat data a Unix spustit. Je to patrně jediný známý dochovaný exemplář tohoto 52 let starého Unixu, prvního vůbec programovaného v jazyce C.

    🇨🇽 | Komentářů: 1
    včera 15:55 | Komunita

    FFmpeg nechal kvůli porušení autorských práv odstranit z GitHubu jeden z repozitářů patřících čínské technologické firmě Rockchip. Důvodem bylo porušení LGPL ze strany Rockchipu. Rockchip byl FFmpegem na porušování LGPL upozorněn již téměř před dvěma roky.

    🇨🇽 | Komentářů: 7
    včera 15:44 | Zajímavý software

    K dispozici je nový CLI nástroj witr sloužící k analýze běžících procesů. Název je zkratkou slov why-is-this-running, 'proč tohle běží'. Klade si za cíl v 'jediném, lidsky čitelném, výstupu vysvětlit odkud daný spuštěný proces pochází, jak byl spuštěn a jaký řetězec systémů je zodpovědný za to, že tento proces právě teď běží'. Witr je napsán v jazyce Go.

    🇨🇽 | Komentářů: 1
    včera 15:33 | Zajímavý software

    Yazi je správce souborů běžící v terminálu. Napsán je v programovacím jazyce Rust. Podporuje asynchronní I/O operace. Vydán byl v nové verzi 25.12.29. Instalovat jej lze také ze Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    26.12. 18:44 | Komunita

    Od soboty do úterý probíhá v Hamburku konference 39C3 (Chaos Communication Congress) věnovaná také počítačové bezpečnosti nebo hardwaru. Program (jiná verze) slibuje řadu zajímavých přednášek. Streamy a záznamy budou k dispozici na media.ccc.de.

    Ladislav Hagara | Komentářů: 0
    26.12. 13:22 | Zajímavý software

    Byl představen nový Xserver Phoenix, kompletně od nuly vyvíjený v programovacím jazyce Zig. Projekt Phoenix si klade za cíl být moderní alternativou k X.Org serveru.

    🇨🇽 | Komentářů: 7
    26.12. 13:11 | Nová verze

    XLibre Xserver byl 21. prosince vydán ve verzi 25.1.0, 'winter solstice release'. Od založení tohoto forku X.Org serveru se jedná o vůbec první novou minor verzi (inkrementovalo se to druhé číslo v číselném kódu verze).

    🇨🇽 | Komentářů: 0
    26.12. 03:33 | Nová verze

    Wayback byl vydán ve verzi 0.3. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.

    Ladislav Hagara | Komentářů: 0
    25.12. 14:44 | Nová verze

    Byla vydána verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.

    Ladislav Hagara | Komentářů: 0
    Kdo vám letos nadělí dárek?
     (34%)
     (1%)
     (23%)
     (1%)
     (1%)
     (1%)
     (11%)
     (12%)
     (16%)
    Celkem 179 hlasů
     Komentářů: 18, poslední 24.12. 15:29
    Rozcestník

    Dotaz: python: pole <-> slovník

    11.5.2006 11:51 Jáchym Čepický | skóre: 29 | blog: U_Jachyma
    python: pole <-> slovník
    Přečteno: 412×
    marně hledám, jak v pythonu nějak jednoduše a elegantně převést pole na slovník.

    v perlu to jde nejpřímočařeji, jak jen možno:
    %slovnik = {}
    @pole = ['a',1,'b',2]
    %slovnik = @pole
    
    (nebo tak nějak - už zapomínám)

    jak na to v pythonu?

    Díky

    Odpovědi

    11.5.2006 12:12 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
    Rozbalit Rozbalit vše Re: python: pole <-> slovník

    To zapomínání je vidět :-) Přiřazení %slovnik = {} v perlu dopadne asi nějak takto:

    %slovnik = {};
    use Data::Dumper;
    print Dumper(\%slovnik);
    $VAR1 = {
              'HASH(0x8152508)' => undef
            };
    Jinak zbytek je v pohodě protože tím se ten první nesmysl přepíše :-) Jinak v perlu to jde ještě asi těmato dalšíma způsobama což ti asi utkvělo v paměti :
    $hashref={@pole};
    $hashref2={}; %$hashref2=@pole;
    Ale jak se to dělá v pythonu fakt netuším :-D

    P.S.: Jinak moje oblíbené

    @slovnik{@keys}=@values
    taky není špatné

    XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
    11.5.2006 12:17 Jáchym Čepický | skóre: 29 | blog: U_Jachyma
    Rozbalit Rozbalit vše Re: python: pole <-> slovník
    jj,

    no, mě jde tedy konkrétně o
    slovnik = retezec.split(",")
    
    11.5.2006 14:50 ava
    Rozbalit Rozbalit vše Re: python: pole <-> slovník
    Myslim ze jednoduse to nepujde (i kdyz python nijak buhvijak skvele neznam), lze udelat napr dict([('a', 1), ('b', 2)]), ale ne dict(['a', 1, 'b', 2]). K cemu to potrebujes (tim chci rict, co obsahuje ten "retezec" co delis podle carek?) nedal jsi nam moc informaci..

    Jinak by to urcite slo drevacky nejakou smyckou, dalsi moznost (funguje od pythonu 2.4) by bylo treba pouzit takhle nadefinovany iterator
    	def pairwise(iterable):
    		"s -> (s0,s1), (s1,s2), (s2, s3), ..."
    		a, b = itertools.tee(iterable)
    		try:
    			b.next()
    		except StopIteration:
    			pass
    		return itertools.izip(a, b)
    
    nebo nejakou jeho modifikaci a vysledek pak prevest na dict. Kazdopadne chyba je podle me ne v tom jak to udelat, ale PROC to vubec delat.
    11.5.2006 15:55 Jáchym Čepický | skóre: 29 | blog: U_Jachyma
    Rozbalit Rozbalit vše Re: python: pole <-> slovník
    hmm no, dělam to trochu jinak, a o moc nešikovnějc ne.

    kazdopadne chyba neni nikde. program prostě dostane seznam parametrů a jejich hodnot jako řetězec oddělených čárkami.
    DataInputs = "a,1,b,2,c,3"
    
    a kvůli další práci je IMHO nejvýhodnější právě slovník
    DataInputs = {
     'a':1,
     'b':2,
     'c':3,
    }
    
    dík za tip
    11.5.2006 17:30 ava
    Rozbalit Rozbalit vše Re: python: pole <-> slovník
    Nic jednodussiho uz me bohuzel nenapada..
    
    s='a,1,b,2,c,3'
    
    kvrest = s
    d = {}
    while True:
        kvrest = kvrest.split(',', 2)
        d[kvrest[0]] = kvrest[1]
        try:
            kvrest = kvrest[2]
        except IndexError:
            break
    
    12.5.2006 08:15 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: python: pole <-> slovník
    V pythonu lze přímou cestou zkonvertovat list na dict pouze tehdy, jsou-li položky klíč-hodnota ve dvojicích (tuples). V tvém případě jsou na lichých pozicích klíče, na sudých hodnoty. Takže se vyberou liché, vyberou sudé, pak se zipnou a pak se to zkonvertuje:
    p = ['one', 1, 'two', 2, 'three', 3, 'four', 4]
    keys = p[0::2]    #liche
    values = p[1::2]  #sude
    zipped = zip(keys, values)
    slovnik = dict(zipped)
    slovnik
    {'four': 4, 'three': 3, 'two': 2, 'one': 1}
    
    příznivci one-linerů to mohou napsat takto:
    dict(zip(p[0::2], p[1::2]))
    
    12.5.2006 08:27 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: python: pole <-> slovník
    Aha, teď vidím, že ty hodnoty bereš z řetězce a přitom se to tam bude používat jako čísla, že? Tak by možná bylo dobré hodnoty rovnou překonvertovat. Buď
    values = map(int, p[1::2])  #sude
    
    nebo v případě toho one-lineru
    dict(zip(p[0::2], map(int, p[1::2])))
    
    12.5.2006 08:31 Jáchym Čepický | skóre: 29 | blog: U_Jachyma
    Rozbalit Rozbalit vše Re: python: pole <-> slovník
    to už je detail

    super! moc děkuju

    Založit nové vláknoNahoru

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

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