abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    17.5. 13:44 | Nová verze

    Byla vydána (𝕏) nová major verze 17 softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech GitLab (Wikipedie). Představení nových vlastností i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    17.5. 12:22 | Komunita

    Sovereign Tech Fund, tj. program financování otevřeného softwaru německým ministerstvem hospodářství a ochrany klimatu, podpoří vývoj FFmpeg částkou 157 580 eur. V listopadu loňského roku podpořil GNOME částkou 1 milion eur.

    Ladislav Hagara | Komentářů: 0
    17.5. 01:55 | Komunita

    24. září 2024 budou zveřejněny zdrojové kódy přehrávače Winamp.

    Ladislav Hagara | Komentářů: 10
    16.5. 23:33 | Nová verze

    Google Chrome 125 byl prohlášen za stabilní. Nejnovější stabilní verze 125.0.6422.60 přináší řadu oprav a vylepšení (YouTube). Podrobný přehled v poznámkách k vydání. Opraveno bylo 9 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 1
    16.5. 21:11 | Nová verze

    Textový editor Neovim byl vydán ve verzi 0.10 (𝕏). Přehled novinek v příspěvku na blogu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    16.5. 20:55 | Nová verze

    Byla vydána nová verze 6.3 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.15.

    Ladislav Hagara | Komentářů: 0
    16.5. 13:33 | IT novinky

    Dnes ve 12:00 byla spuštěna první aukce domén .CZ. Zatím největší zájem je o dro.cz, kachnicka.cz, octavie.cz, uvycepu.cz a vnady.cz [𝕏].

    Ladislav Hagara | Komentářů: 9
    16.5. 13:22 | Nová verze

    JackTrip byl vydán ve verzi 2.3.0. Jedná se o multiplatformní open source software umožňující hudebníkům z různých částí světa společné hraní. JackTrip lze instalovat také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    16.5. 12:22 | Pozvánky

    Patnáctý ročník ne-konference jOpenSpace se koná 4. – 6. října 2024 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytváří všichni účastníci, se skládá z desetiminutových

    … více »
    Zdenek H. | Komentářů: 0
    16.5. 03:11 | Nová verze

    Program pro generování 3D lidských postav MakeHuman (Wikipedie, GitHub) byl vydán ve verzi 1.3.0. Hlavní novinkou je výběr tvaru těla (body shapes).

    Ladislav Hagara | Komentářů: 9
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (76%)
     (5%)
     (10%)
     (9%)
    Celkem 327 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    Kolekcie v pythone a PHP bok po boku

    23.6.2014 14:00 | Přečteno: 2963× | Programovanie | poslední úprava: 1.7.2014 09:03

    PHP je jazk, ktorý má niekoľko tisíc globálnyc funkcií (z toho asi 80 pre prácu s poliami). Python má menej než 80 globálnych funkcí, aj napriek tomu je práca s poliami dostatočne praktická. V nasledujúcej tabuľke sú viac-menej ekvivalentné kódy.
    Popis PHP Python Poznámka
    Pridanie položky do poľa
    $pole[] = "novy_prvok";

    array_push($pole, "novy_prvok");
    pole += ["novy_prvok"]

    pole.append("novy_prvok")
    Pridanie na začiatok poľa
    array_unshift($pole, $hodnota);
    
    pole.insert(0, hodnota)
    
    Nastavenie defaultnej hodnoty asociatívneho poľa
    $podla_kategorie = Array();
    foreach ($produkty as $produkt) {
      if (!isset($produkty[$produkt->kategoria])) {
        $produkty[$produkt->kategoria] = Array();
      }
      array_push($produkty[$produkt->kategoria], $produkt);
    }
    
    podla_kategorie = {}
    for produkt in produkty:
      podla_kategorie.setdefault(produkt.kategoria, [])
      podla_kategorie[produkt.kategoria].append(produkt)
    
    Prístup k prvku asociatívneho poľa alebo defaultnej hodnote
    if (!array_key_exists($produkt, "cena")) {
      echo "Neurčená";
    }
    else {
      echo $produkt["cena"];
    }
    
    print(produkt.get("cena", "Neurčená"))
    
    Zistenie prítomnosti kľúča v asociatívnom poli
    array_key_exists($kluc, $pole);
    
    kluc in pole
    
    Zistenie prítomnosti hodnoty v (asociatívnom) poli
    in_array($kluc, $pole);
    
    kluc in pole
    

    kluc in pole.values()
    
    Prvý zápis v pythone je pre list, druhý zápis pre asociatívne pole (dict).
    Prístup ku kľúčom / hodnotám asociatívneho poľa
    $kluce = array_keys($pole);
    $hodnoty = array_values($pole);
    
    kluce = pole.keys()
    hodnoty = pole.values()
    
    Foreach cyklus
    foreach ($pole as $hodnota) {
      ...
    }
    

    foreach ($pole as $kluc => $hodnota) {
      ...
    }
    
    for hodnota in pole:
      ...
    

    for kluc, hodnota in pole.iteritems():
      ...
    

    for id, hodnota in enumerate(pole):
      ...
    
    V prípade obyčajného pľa (list) je možné pristupovať k číslu prvku pomoocu posledného zápisu v pythone.
    Foreach cyklus s podmienkou vykonanou pri normálnom ukončení cyklu (bez breaku)
    $obsahuje_parne_cislo = FALSE;
    foreach ($pole as $prvok) {
      if ($prvok % 2 == 0) {
        $obsahuje_parne_cislo = TRUE;
        break;
      }
    }
    
    if (!$obsahuje_parne_cislo) {
      echo "Neobsahuje párne číslo";
    }
    
    for prvok in pole:
      if prvok % 2 == 0:
        break
    else:
      print("Neobsahuje párne číslo");
    
    Filtrovanie poľa
    $lacne = array_filter($produkty, function($p) {
      return $p["cena"] < 10;
    });
    
    lacne = [p for produkty if p["cena"] < 10]
    
    Prehodenie kľúčov a hodnôt v asociatívnom poli
    $opacne = array_flip($pole);
    
    opacne = {v: k for k, v in pole.iteritems()}
    
    Vytvorenie asociatívneho poľa z poľa kľúčov a hodnôt
    $pole = array_combine($kluce, $hodnoty);
    
    pole = dict(zip(kluce, hodnoty));
    
    Rozdiel množín
    $a = array("hruska", "jablko", "slivka");
    $b = array("hruska", "slivka");
    $rozdiel = array_diff($a, $b);
    
    a = {"hruska", "jablko", "slivka"}
    b = {"hruska", "slivka"}
    rozdiel = a - b
    
    Prienik množín
    array_intersect($a, $b);
    
    a & b
    
    Zjednotenie
    array_merge($a, $b);
    
    a | b
    
    Vyplnenie poľa hodnotami
    array_fill(0, 10, "hodnota");
    
    ["hodnota"] * 10
    
    Aplikovanie funkcie na každý prvok poľa
    array_map("strtoupper", $pole);
    
    [v.upper() for v in pole]
    
    Odstránenie posledného prvku poľa
    array_pop($pole);
    
    pole.pop()
    
    Odstránenie prvého prvku poľa
    array_shift($pole);
    
    pole.pop(0)
    
    Vyhľadávanie v poli
    array_search($hodnota, $pole);
    
    pole.index(hodnota)
    
    Python verzia v prípade, že sa hľadaný prvok nenachádza v poli vyhodí výnimku ValueError.
    Súčet prvkov poľa
    array_sum($pole);
    
    sum(pole)
    
    Vynásobenie hodnôt poľa
    array_product($pole);
    
    from functools import reduce
    from operator import mul
    
    reduce(mul, pole)
    
    Náhodný prvok poľa
    array_rand($pole);
    
    import random
    
    random.choice(pole)
    
    Opačné poradie hodnôt
    array_reverse($pole);
    
    reversed(pole)
    
    Ponechanie unikátnych hodnôt v poli
    array_unique($pole);
    
    set(pole)
    
    Prístup k časti poľa
    Výber 1. až 2. prvku
    array_slice($pole, 2, 2);
    
    pole[1:3]
    
    PHP má ako tretí parameter dĺžku poľa.
    Posledný prvok poľa
    $pole[count($pole) - 1];
    
    pole[-1]
    
    Rozdelenie poľa na časti rovnakej veľkosti
    $rozdelene = array_chunk($pole, 10);
    
    rozdelene = [pole[x:x+10] for x in range(1, len(pole), 10)]
    Nepárne prvky poľa
    $rozdelene = array_chunk($pole, 2);
    $neparne = Array();
    foreach ($rozdelene as $par) {
      $neparne[] = $par[1];
    }
    
    neparne = pole[1::2]
    
    Zoraďovanie
    Zoradenie prvkov poľa
    asort($pole);
    
    sorted(pole)
    
    Zoradenie prkvov v opačnom poradí
    arsort($pole);
    
    sort(pole, reversed)
    
    Zoradenie podľa kľúča
    usort($produkty, function($a, $b) {
      return $a["cena"] > $b["cena"];
    });
    
    sorted(produkty, key=lambda p: p["cena"])
    

    Na koniec jeden komplexnejší príklad parsujúci CSV s názvami v prvom riadku a hodnotami vo zvyšných riadkoch. Najskôr teda CSV:

    id,nazov,cena
    1,Jablka,10
    2,Hrusky,5
    3,Maliny,4
    

    Nasledujúci PHP kód rozparsuje CSV do objektov a vypíše názvy a ceny produktov:

    $rows = array();
    
    if (($fp = fopen("produkty.csv", "r")) !== FALSE) {
      while (($data = fgetcsv($fp)) !== FALSE) {
        $rows[] = $data;
      }
      fclose($fp);
    }
    
    $header = array_shift($rows);
    $produkty = array();
    foreach ($rows as $row) {
      $produkty[] = (object)array_combine($header, $row);
    }
    
    foreach ($produkty as $produkt) {
      echo $produkt->nazov . " - " . $produkt->cena . " EUR\n";
    }
    
    

    Ekvivalentný kód v pythone vyzerá nasledovne:

    import csv
    from collections import namedtuple
    
    rows = list(csv.reader(open("produkty.csv", "r")))
    Produkt = namedtuple("Produkt", rows[0]) # Vygenerovanie triedy
    produkty = [Produkt(*r) for r in rows[1:]]
    
    for produkt in produkty:
      print("%s - %s EUR" % (produkt.nazov, produkt.cena))
    
           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    23.6.2014 14:23 lopuch
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Foreach cyklus s podmienkou prázdneho poľa
    To jsem neznal, díky
    23.6.2014 15:32 janik | blog: janko
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Akurát to nefunguje. for-else má v Pythone iný význam.
    Python 3.3.3 (default, Mar 27 2014, 16:17:16) 
    Type "copyright", "credits" or "license" for more information.
    
    IPython 1.2.1 -- An enhanced Interactive Python.
    ?         -> Introduction and overview of IPython's features.
    %quickref -> Quick reference.
    help      -> Python's own help system.
    object?   -> Details about 'object', use 'object??' for extra details.
    
    In [1]: kosik = ["mlieko", "maslo"]
    
    In [2]: for produkt in kosik:
       ...:     print(produkt)
       ...: else:
       ...:     print("Prazdny nakupny kosik")
       ...:     
    mlieko
    maslo
    Prazdny nakupny kosik
    23.6.2014 16:38 lopuch
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Pravda:
    the else suite is executed after the for, but only if the for terminates normally (not by a break).
    To je dost rozdíl :-(
    mirec avatar 23.6.2014 17:41 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Diky za upozornenie, uvedenú konštrukciu často používam jinja2, tam sa skutočne vykoná pri prázdnom poli. Nejako mi nevyšiel čas na skúšanie kódov ;)
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    23.6.2014 14:46 P.
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Pěkný, v PHP části bych trochu zestručnil načítání souboru.

    $rows = array_map(
      function($r) { return str_getcsv($r); },
      explode("\n", file_get_contents('produkty.csv'))
    );
    $header = array_shift($rows);
    foreach ($rows as $row) {
      $produkt = (object)array_combine($header, $row);
      echo "{$produkt->nazov} - {$produkt->cena} EUR\n";
    }
    
    mirec avatar 23.6.2014 18:04 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Vcelku elegantné riešenie, požičal som si do príkladu rozsekanie na hlavičk a zvyšok. Načítanie takýmto spôsobom mi na poslednom volaní funkcie vyhadzuje varovanie, editor mi ukladá na konci súboru "\n" čo spôsobí načítanie prázdneho riadku a volanie array_combine s prázdnym riadkom nemá moc zmysel. Po nasledovnej úprave to funguje aj u mňa:
    $rows = array_map(
      function($r) { return str_getcsv($r); },
      explode("\n", rtrim(file_get_contents('produkty.csv')))
    );
    $header = array_shift($rows);
    foreach ($rows as $row) {
      $produkt = (object)array_combine($header, $row);
      echo "{$produkt->nazov} - {$produkt->cena} EUR\n";
    }
    
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    lucorp avatar 23.6.2014 15:13 lucorp | skóre: 3 | blog: Konverzia stavbára na ajťáka | Bratislava
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    v PHP mozes "Zistenie prítomnosti kľúča v asociatívnom poli" spravit ako if($pole[kluc])

    V tomto pripade je to presne to iste co si uviedol pre python

    "Vyčíslovať straty na predajoch za pirátske kópie je ako vyčíslovať o koľko deti prichádzame masturbáciou..."
    lucorp avatar 23.6.2014 15:21 lucorp | skóre: 3 | blog: Konverzia stavbára na ajťáka | Bratislava
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    tiez "Posledný prvok poľa" nacitas ako end($pole)

    ale inak super clanok, ako cloveku co pisem v php aj pythone mi rozsiril obzory :)

    "Vyčíslovať straty na predajoch za pirátske kópie je ako vyčíslovať o koľko deti prichádzame masturbáciou..."
    23.6.2014 15:39 P.
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    v PHP mozes "Zistenie prítomnosti kľúča v asociatívnom poli" spravit ako if($pole[kluc])

    člověk ale musí vědět přesně, co chce (z hlediska očekávaných hodnot v poli), např.
    $a = array('a' => 0, 'b' => null, 'c' => 1);
    foreach (array_keys($a) as $k) {
      if ($a[$k]) echo "$k\n";
    }
    
    mirec avatar 23.6.2014 17:46 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Konštrukcia if($pole[kluc]) bude ak neexistuje kľúč generovať varovanie. Okrem toho ak $pole[kluc] sa vyhodnotí ako false potom to bude vyzerať ako keby kľúč nebol v poli. Celkom schodnou cestou je operátor isset.
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    Luk avatar 23.6.2014 18:08 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Pokud se nepoužívá isset a rve se to tam "natvrdo", má to velmi negativní dopady na výkon.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    23.6.2014 18:36 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Použícat if($pole[kluc]) je dost kravina (jak bylo už naznačeno).
    $a = array(false, NULL, 0);
    echo "${a[0]} - ${a[1]} - ${a[2]}";
    if( $a[0] || $a[1] || $a[2] ) {
      echo "Aspoň jeden existuje.\n";
    }
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Luk avatar 23.6.2014 19:17 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    To samozřejmě. Jen jsem chtěl říct, že i když to "funguje", silně to degraduje výkon.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    23.6.2014 20:09 Kvakor
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Právě z tohoto důvodu je v PHP i funkce array_key_exists(), kjterá by měla být efektivnější než isset() (i když podle toho, co jsem kdysi zkoušel, v tom velký rozíl nebyl).

    Jinak na rozpoznání toho, jestli funkce vrací false, protože se na to převedla výsledná hodnota, nebo false, protože nic nenašla, je operátor ===, viz Comparison Operators.
    23.6.2014 20:35 sigma
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Tady pozor na to, že isset() u klíče, jehož hodnota je NULL, vrací false. Kdežto array_key_exists() v takovém případě vrací true! Viděl jsem z toho nepěkné bugy.
    Luk avatar 23.6.2014 20:41 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Právě z tohoto důvodu je v PHP i funkce array_key_exists(), kjterá by měla být efektivnější než isset() (i když podle toho, co jsem kdysi zkoušel, v tom velký rozíl nebyl).

    Ve skutečnosti je zřejmě výrazně méně efektivní. Problém u isset() je v tom, že pokud je hodnota v poli NULL, je výsledkem FALSE. V případech, kdy by to vadilo, lze použít array_key_exists() nebo oba přístupy kombinovat, čímž se dosáhne vcelku slušné rychlosti.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    30.6.2014 12:48 Kozzi11
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    pozor prave ze array_key_exists je snad skoro vzdy pomalejsi nez isset, ale je to vetsinou ta spravna volba. Jelikoz jak jiz bylo receno isset vracit false i v pripade kdu je hodnota v poli pro dany klic null
    Josef Kufner avatar 30.6.2014 14:42 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Na druhou stranu se někdy hodí, pokud null a neexistující prvek pole jsou považovány za totéž. Například při načítání konfigurace takto lze přepsat nastavenou hodnotu na "nenastaveno", pokud je výsledná konfigurace dána složením několika souborů (default knihovny, nastavení aplikace, nastavení konkrétní instalace).

    V mnoha dalších případech je vhodné použít !empty(), což sice nerozlišuje mezi chybějící a nulovou hodnotou, ale pokud chci vědět, zda tam něco je, tak je to dobrá volba (isset(false) == true, ale !empty(false) == false).

    V případech, kdy se hodí použít array_key_exist() je často možné místo null použít false a pak funguje isset(). Například pokud chci kešovat objekty v poli a je potřeba nakešovat informaci o neúspěšném pokusu o vytvoření.
    Hello world ! Segmentation fault (core dumped)
    pavlix avatar 30.6.2014 15:18 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Tyhle prasárny jsou přesně věci, co se mi na PHP nelíbí. Ať už je to příliš divoká konverze jako řetězec se znakem nula na boolean, nešikovné míchání asociativních a sekvenčních polí (což mě mimochodem překvapilo i u jazyku Lua), nejasné rozlišování mezi absencí hodnoty a null. Přišlo mi že v Pythonu nebyly až takové prasárny jako v PHP a i tak byly dost aktivně čištěny při přechodu na verzi 3.x.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Josef Kufner avatar 30.6.2014 17:25 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Jo, chtělo by to pořádně pročistit. Ale do PHP6 je ještě moře času.
    Hello world ! Segmentation fault (core dumped)
    pavlix avatar 30.6.2014 17:36 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Mohli by třeba vydat Python 3.6 jako PHP 6 ;).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    30.6.2014 18:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Nehroť to, ubyl by mi z portfolia jazyk, kterým aspoň nějak vládnu…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    pavlix avatar 30.6.2014 18:04 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Na portfolia programovacích jazyků už si nikdo nehraje ;).
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    30.6.2014 18:09 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Někdo přece, třeba já.
    Ale pokud by PHP 6 aka Python 3.6 mělo jen středník a formátovat bych si mohl jak chtěl - sem s tím, tomu se nebráním :-).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Josef Kufner avatar 23.6.2014 22:52 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Pro tyto případy se hodí zavináč, ale obvykle bývá lepší !empty(). Těch způsobů je několik a každý se chová trošku jinak.
    // $k je hledaný klíč v poli $a.
    if (array_key_exists($k, $a)) // $k existuje, na hodnotě nezáleží
    
    if (isset($a[$k])) // $k je v poli a hodnota není null
    if (@ $a[$k] !== null) // totéž
    
    if (!empty($a[$k])) // $k je v poli a hodnota je neprázdná (není to null, false, 0, '', array())
    if (@ $a[$k]) // totéž
    
    Přičemž array_key_exists je nejpomalejší, neboť je to jediné plné volání funkce a ostatní jsou jazykové konstrukce. (Nejsem si jist, zda to nebylo v posledních verzích optimalizováno; v 5.3 to tak bylo.)

    Další docela elegantní konstrukce je toto:
    $y = @ $k[$v];
    Docela rád toto používám při načítání konfigurace např. z JSON, kdy volba nemusí být uvedena a výchozí hodnota je null či false.
    Hello world ! Segmentation fault (core dumped)
    Luk avatar 24.6.2014 00:23 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Dělá ten zavináč ještě něco jiného, než že potlačuje varování? AFAIK ne a má docela slušnou režii, takže výrazně zpomaluje.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    Josef Kufner avatar 24.6.2014 12:18 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Režii nemá, naopak čas šetří. Ovšem ta operace neúspěšného hledání je nějaká pomalá... Udělal jsem si jednoduchý benchmark:

    Čas je za 10 spuštění 1 milionu iterací. "code" je čistý čas strávený v cyklu.
    $ code='if (isset($a[$i])) { $y += $a[$i]; }' ; time for f in `seq 1 10` ; do php -r '$a = array(); $y = 0; $start = microtime(true); for ($i = 0; $i < 1000000; $i++) { '"$code"' }; echo (microtime(true) - $start), "\n";' 2> /dev/null ; done | awk '{ total += $1 } END { print "code\t" total "s"}'
    code    0.760216s
    real    0m1.380s
    user    0m1.156s
    sys     0m0.204s
    
    $ code='if (!empty($a[$i])) { $y += $a[$i]; }' ; time for f in `seq 1 10` ; do php -r '$a = array(); $y = 0; $start = microtime(true); for ($i = 0; $i < 1000000; $i++) { '"$code"' }; echo (microtime(true) - $start), "\n";' 2> /dev/null ; done | awk '{ total += $1 } END { print "code\t" total "s"}'
    code    0.973294s
    real    0m1.599s
    user    0m1.356s
    sys     0m0.220s
    
    $ code='$y += @ $a[$i];' ; time for f in `seq 1 10` ; do php -r '$a = array(); $y = 0; $start = microtime(true); for ($i = 0; $i < 1000000; $i++) { '"$code"' }; echo (microtime(true) - $start), "\n";' 2> /dev/null ; done | awk '{ total += $1 } END { print "code\t" total "s"}'
    code    13.0701s
    real    0m13.690s
    user    0m13.448s
    sys     0m0.196s
    
    $ code='$y += $a[$i];' ; time for f in `seq 1 10` ; do php -r '$a = array(); $y = 0; $start = microtime(true); for ($i = 0; $i < 1000000; $i++) { '"$code"' }; echo (microtime(true) - $start), "\n";' 2> /dev/null ; done | awk '{ total += $1 } END { print "code\t" total "s"}'
    code    22.2458s
    real    0m22.862s
    user    0m20.560s
    sys     0m2.252s
    
    Tedy verze se zavináčem je oproti isset() 17× pomalejší, ale pořád dvakrát rychlejší než bez zavináče. Na druhou stranu je to v řádu desetin mikrosekund.
    Hello world ! Segmentation fault (core dumped)
    mirec avatar 24.6.2014 12:22 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Je to dôsledkom varovania (hoc nevypísaného).
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    mirec avatar 23.6.2014 17:49 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    Ešte k PHP-čku tak pozerám v histórii svojho PHP shellu túto perlu:

    $premenna = false;
    if (premenna && "a" == 0) {
      echo "Vypíšem sa!\n";
    }

    Mimochodom tento konkrétny kód sa u mňa vypíše bez varovania (jedine notice ale to kvôli istým "super" projektom mám vypnuté.

    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    23.6.2014 18:28 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    To není moc hezké, ale je to tak, nedefinovaná konstanta je brána jako "text" a neprázdný text je true, což umožňuje taky chod některých aplikací píšících array[my_text_key].
    No a 'a' se implicitně na číslo převede jako 0, chce to přidat jedno rovná se.

    Ony se různé perličky vyskytují v různých jazycích…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    23.6.2014 20:42 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Né, že by to bylo úplně ze stejného soudku, ale je to o „nerespektování základních pravidel“, nedávno jsem se nachytal takovou kravinou, už hodně dávno jsem napsal jednu fci:
        template<class Tint>
        static Tint randInteger(Tint max){
          Tint v;
          rand(reinterpret_cast<unsigned char *>(&v), sizeof(Tint));//get uchar random array
          if(v < 0)
            v=static_cast<Tint>(v*(-1));//positive only
          assert(v >= 0);
          return static_cast<Tint>(v % (max));
        }
    
    , která valila jednou za uherák s randInteger<int64_t>(cca_INT64_MAX); (nebo s unsigned typy) a dobré, ale nedávno jsme ji použil s randInteger<int8_t>(42); a najenou to začalo sem tam lítat na tom assert-u - hledíš jak čáp do trubky a nedocvakne ti to (teda já a mně ;-) ).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Bystroushaak avatar 23.6.2014 23:24 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Related: So You Want To Write Your Own CSV code? (+ relevantní reddit komentáře)
    24.6.2014 08:22 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Držím se zásady:
    CSV je tak jednoduché, že je lepší mít vlastní reader(writer) aby to fungovalo správně…
    …tady uvedené jsem bral jen jako ukázku něčeho jako CSV - je fakt že se píše že to parsuje CSV - což určitě není správně… :-)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    24.6.2014 09:01 user490
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    1. PHP podporuje anonymne funkcie takze vsetky priklady (Filtrovanie poľa, Zoradenie polda) kde mas funkcie ktore maju jeden z parametetrov inu funkciu mozese volat takto:

    $output = array_filter($p, function($p) { return ($p['cena'] < 10); });

    2. V PHP sa da da miesto kluc. slova "array" pouzivat kratsi zapis [] ekvivalent pythonovskym {}:

    Miesto: $a = array("hruska", "jablko", "slivka"); mozes napisat: $a = ["hruska", "jablko", "slivka"];

    Miesto: $a = array(); mozes pouzivat: $a = [];

    mirec avatar 24.6.2014 09:31 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    1. zápisom s lmabda funkciou takto v jednom riadku som sa vyhýbal zámerne kvôli šírke tabuľky

    2. [] je ekvivalent pythonovského [], {"a": "b"} je dictionary teda ekvivalent phpčkového array("a" => "b") (ten sa skrátene pokiaľ viem zapísať nedá).
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    Josef Kufner avatar 24.6.2014 12:23 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    array() a [] je totéž. Tedy lze zapsat [1, 2, 3] a ['a' => 4, 'b' => 5, 'c' => 6]. Od PHP 5.4.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 24.6.2014 12:25 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ad 1: PHP není Python, nalámání řádek nemá na kód vliv ;-)
    $output = array_filter($p, function($p) {
       return ($p['cena'] < 10);
    });
    Hello world ! Segmentation fault (core dumped)
    rADOn avatar 24.6.2014 10:16 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Jestě by se nechal přidat ternár, ať se phpčkaři taky jednou zasmějou.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    Bystroushaak avatar 24.6.2014 11:51 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Co je na inline ifu směšného?
    mirec avatar 24.6.2014 12:30 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    To s kolekciami moc nesúvisí. Inak je to jedna zo syntaktických blbostí v pythone ktorej som dlho nevedel prísť na chuť. Ale tak po pár mesiacoch písania viacej v pyhtone sa mi to zdá už celkom prirodzené ale používam tak raz za uhorský rok. Pre PHP-čkárov ak by teda chceli vedieť je tento kód v PHP:

    $cena = $produkt["cena"] == 0 ? "Nepredajné" : $produkt["cena"];

    Je ekvivalentný tomuto v pythone:

    cena = "Nepredajné" if produkt["cena"] == 0 else produkt["cena"]

    alebo

    cena = produkt["cena"] or "Nepredajné"
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    Josef Kufner avatar 24.6.2014 12:46 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    A nebo v PHP:
    $cena = $produkt["cena"] ? : "Nepredajné";
    Hello world ! Segmentation fault (core dumped)
    pavlix avatar 24.6.2014 13:00 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    cena = produkt["cena"] or "Nepredajné"
    Toto funguje stejně i v Pythonu.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    pavlix avatar 24.6.2014 16:00 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Aha, ono to je v Pythonu, tak to pardon.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    24.6.2014 16:25 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ano, a nema se to tak delat! "Explicit is better than implicit."
    Lidstvo čelí v tomto století hrozbě civilizačního kolapsu. Podpořte hnutí klimatickakoalice.cz!
    mirec avatar 24.6.2014 17:00 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    Ako sa to tak vezme, kvôli určitým (v istých situáciách dosť nepríjemným) vlastnostiam pythonu je to veľmi veľmi veľmi užitočná konštrukcia (samozrejme v rozumnej miere). Ako príklad uvediem defaultné argumenty funkcie. Povedzme chcem napísať niečo takéto:

    def funkcia(argument=[]):
      ...

    Python však pracuje s referenciami (aj defaultný argument je referencia), takže pridanie prvku vo volaní funkcie by pri ďalšom volaní spôsobil, že by už defaultný argument bol [prvok]. Dá sa to vyriešiť 2 bežnými spôsobmi:

    def funkcia(argument=None):
      if argument is None:
        argument = [] # vytvorenie nového listu
      ...

    alebo:

    def funkcia(argument=None):
      argument = argument or []
      ...

    Pomerne často túto konštrukciu používam aj v djangu kde namiesto odporúčaného zápisu spracovania formulárov v dokumentácii:

    def view(request):
      if request.method == "POST":
        form = Formular(request.POST)
        if form.is_valid():
          return HttpResponseRedirect(form.save().get_absolute_url())
      else:
        form = Formular()
      return TemplateResponse(request, "sablona.html", {"form": form})

    používam takto:

    def view(request):
      form = Formular(request.POST or None)
      if form.is_valid():
        return HttpResponseRedirect(form.save().get_absolute_url())
      return TemplateResponse(request, "sablona.html", {"form": form})
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    pavlix avatar 24.6.2014 21:49 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    def funkcia(argument=None):
      argument = argument or []
    Zrovna toto se mi moc nelíbí, protože to prázdný seznam argumentu (při volání funkcia([])) nahrazuje novým prázdným seznamem a z kódu není zjevné, zda je to úmysl nebo chyba. Z toho důvodu bych zde dal přednost explicitnímu zápisu pomocí argument is None.
    form = Formular(request.POST or None)
    Toto mi naopak přijde fajn, protože jde jen o nahrazení prázdného request.POST za None.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    pavlix avatar 24.6.2014 21:41 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Házet poučkami je fajn, ale osobně tenhle zápis považuju pro Pythoního programátora za 100% srozumitelný. Jednou máme přesně definované vyhodnocení všeho možného na boolean, tak nevidím jediný důvod toho nevyužít. Ta vlastnost tam není pro srandu králíkům.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    rADOn avatar 25.6.2014 12:46 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Přesně tak. Taky jsem si na to chvíli zvykal ale pokud se to používá střídmě tak je to jednodušší a přehlednější než vypisovat ternár neřkuli if blok.
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    xkucf03 avatar 27.6.2014 13:58 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Tohle je hlavně prasárna z důvodu, že se tu pletou různé datové typy. Cena je předpokládám číslo, zatímco "Nepredajné" je text. Pak třeba budou vznikat výstupy typu "Nepredajné Kč" nebo se někdo pokusí sčítat (násobit, dělit...) textové řetězce. Nemluvě o nějaké lokalizaci.

    Taková dynamičnost je na 99 % zlo a člověku se to vrátí jako bumerang ve chvíli, kdy to nečeká.

    Je lepší používat NULL, pokud stačí jeden význam pro chybějící hodnotu, nebo si vytvořit nějaký obalový objekt, který obsahuje buď hodnotu, nebo důvod, proč hodnota chybí (výčet).
    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    Bystroushaak avatar 24.6.2014 13:23 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ještě existuje jeden ekvivalent, který šetří místo a tím je
    [produkt["cena"], "Nepredajné"][produkt["cena"] == 0]
    
    Ale to už je docela prasárna.
    24.6.2014 14:36 lopuch
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Až se mi z toho zauzlovala střeva :-D Zase třeba kompilátoru by to tak nevadilo
    24.6.2014 14:37 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Takže zatímco u pythonu to má možná o pár znaků víc, ale je hned vidět co to dělá, tak php sic používá běžnej konstrukt, kterej jsem se ale doteď nenaučil, protože mi z těch znaků jde hlava kolem :)
    Bystroushaak avatar 24.6.2014 15:57 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ono těch znaků si zas tak moc pamatovat nepotřebuješ: ?:

    Prvně se na něco ptáš, tak tam dáš otazník:

    cena == 0 ?

    A když jo, tak hned odpověď. Když ne, tak alternativní odpověď, která něčím musí být oddělená, tak proč ne dvojtečkou?

    otázka ? odpověď : alternativa

    Zas tak složité to není :)
    mirec avatar 24.6.2014 15:59 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    A keďže to všetko stojí peniaze tak premenné obalíme dolármi ;)
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    25.6.2014 15:26 asdf
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    A jelikoz php mysli na pouzitelnost tak i operator ?: se chova jinak nez ve vsech jazycich kde existuje obdobny konstrukt.

    Viz treba:
    $arg = 'T';
    $vehicle = ( ( $arg == 'B' ) ? 'bus' :
                 ( $arg == 'A' ) ? 'airplane' :
                 ( $arg == 'T' ) ? 'train' :
                 ( $arg == 'C' ) ? 'car' :
                 ( $arg == 'H' ) ? 'horse' :
                 'feet' );
    echo $vehicle;
    
    Vysledkem je dle php "horse"
    pavlix avatar 25.6.2014 15:30 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Jen další potvrzení toho, jak je PHP debilní jazyk.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Bystroushaak avatar 25.6.2014 16:54 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Já nejvíc nemohl z toho, jak do verze 5.4 přidali možnost indexovat pole vrácené z funkce.
    echo func()[1];
    
    nešlo, zatímco následující kód fungoval:
    $a = func();
    echo $a[1];
    
    To se na první pohled nemusí zdát jako nic tak kritického, ale pokud jste si někdy psali vlastní jazyk, tak vám to nejspíš napoví, jak moc velká prasárna vevnitř musí dynamický jazyk být, aby mohl mít problémy tohohle typu.
    25.6.2014 18:08 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    OT: Když jsem psal svoje vlastní specifické jazyky, tak 1. neuměl fce ani pole a měl jen 0-99 globálních reálných, integer a text proměnných a neustále se interpretoval. No a druhý už se překládá, do mezi kódu( a je výrazně rychlejší než PHP včetně překladu/parsování) a umí podprogramy, uživatelské proměnné (definované typové, ale s implicitní konverzemi jako variant), 3D vectory a matice + operace a dokonce i pole :-), jenže k prvkům pole přistupuje pouze přes fce set a get, takže mně to zatím nelízlo :-(.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Bystroushaak avatar 25.6.2014 20:21 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Já si napsal jen lisp a kdybych programoval cokoliv dynamického, tak to lisp zase vevnitř bude, i když možná s jinou syntaxí na vstupu. Prostě snaha je z toho udělat AST a nad ním pak rekurzivně spustit engine.
    26.6.2014 15:16 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Jojo z nedovzdělanosti jsem o AST nic nevěděl, ale de-facto to tomu v 2. případě odpovídá i když implementačně tam mám zásadní krpu, o které jsem už tenkrát věděl, ale s různých důvodů jsem tak zvolil (v listu mám jednotlivé nody a místo aby to pochodovalo po ukazatelích, tak to jede přes indexi, ale zas se velmi jednoduše debaguje i parser i kód, bo tam vždy provolání přes „řídící“ prvek je by-design). Nicméně jsem zatím potřeboval hlavně řešil rychlost parseru vs. rozumně obskurní syntaxe, ale myslím, že to s dobou už padlo, takže na potřetí, bude-li, to může být i hezké :).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    mirec avatar 25.6.2014 22:51 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    empty($riadok1.$riadok2);

    Parse error: syntax error, unexpected '.', expecting ')' in php shell code on line 1

    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    Josef Kufner avatar 26.6.2014 01:57 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    empty() není funkce. Na první pohled je to trošku divné, ale když si uvědomíš, co ta konstrukce dělá, tak to dává smysl.
    Hello world ! Segmentation fault (core dumped)
    mirec avatar 26.6.2014 07:38 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Empty je operátor a nedáva to zmysel ;) Patrí to medzi blbosti typu prečo nefungovalo funkcia()[].
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    25.6.2014 15:51 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Tak to je dvakrát nechutné, poprvé ten zápis a podruhé ten výsledek…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    pavlix avatar 25.6.2014 16:34 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ten zápis úplně až tak zle nevypadá. Pokud by se ho člověk jednou naučil, tak má k dispozici switch expression :). Ale pravda je, že v C to typicky píšu takto:
    const char *
    arg_to_string(char arg)
    {
        switch (arg) {
        case 'B':
            return "bus";
        case 'A':
            return "airplane";
        ...
        default:
            return "feet";
        }
    }
    
    int
    main(int argc, char **argv)
    {
        int arg = 'T';
        const char *vehicle = arg_to_string(arg);
    
        printf("%s", vehicle);
    }
    
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    25.6.2014 16:45 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    No právě, je to zápis na switch (PHP bere i řetězce na rozdíl od C, byť tady je to jen znak):
    switch($arg){
      case 'B': $vehicle='bus';      break;
      case 'A': $vehicle='airplane'; break;
      ...
      default : $vehicle='feet';     break;
    } 
    nebo to prdnout do fce a return, jak jsi napsal…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    rADOn avatar 26.6.2014 11:24 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    vehicle = {"B": "bus", "A": "plane", …}.get(arg, "feet")
    
    To snad jde v php napsat taky ne?
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    26.6.2014 15:33 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Nerozumím řeči tvého kmene, napsal jsem plný PHP switch a toto je asi nějaký Pythoní zápis nějaké kolekce (odpusť mou neznalost jazyka Python, nelíbí se mí a nepotřebuji jej), což bych do PHP asi přepsal takto (už to ale není funkční, ale datové):
    $a = Array("B" => "bus", "A" => "plane", …);
    $vehicle = isset($a[$arg])?$a[$arg]:"feet";
    
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Bystroushaak avatar 26.6.2014 15:57 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    {} v pythonu bežně označují asociativní pole (může to být i set, ale to teď vynechme).

    To co jsi popsal je ekvivalent:
    a = {"B": "bus", "A": "plane", ..}
    vehicle = a[arg] if isinstance(a, dict) else "feet"
    (to isset() má imho brát jen $a)

    V pythonu jsou ale operace s asociativními polemi velmi běžné, proto mají taky metodu .get(), která funguje stejně jako indexování přes hranaté závorky, ale zároveň má další argument, který se vrátí pokud není prvek nalezen.

    Ten příklad se dá tedy zkrátit do:
    a = {"B": "bus", "A": "plane", ..}
    vehicle = a.get(arg, "feet")
    26.6.2014 21:24 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    Řekl bych tedy, že fčul máme 4× téměř to samé (3× Python, 1× PHP), ale ne úplně související s if else if else…, což je ten původní zápis přes ?: nebo také swicth, který se obvykle||někdy takto rozkládá).

    Ne, to isset($a[$arg]) je rozhodně správně (na dvou řádcích nepochybuji o předchozím :), tedy oprávněně očekávám, že to pole existuje…) a mohlo by být zaměněno na in_array($a,$arg), pokud by to pole obsahovalo i NULL.

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Bystroushaak avatar 26.6.2014 22:30 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Aha, tady došlo k nepochopení toho isset() z mojí strany. V PHP už jsem nějaký pátek nedělal (a doufám ani nebudu).
    pavlix avatar 27.6.2014 08:09 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Proč isinstance?
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    Bystroushaak avatar 27.6.2014 10:21 Bystroushaak | skóre: 36 | blog: Bystroushaakův blog | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Špatně jsem pochopil ten jeho kód.
    pavlix avatar 27.6.2014 12:50 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Jo, už to vidím.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.
    rADOn avatar 27.6.2014 14:46 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ten kod mel delat totez co ten straslivej blok ternaru nebo switch, ale zpusobem kterej povazuju za rozumnejsi – a to i v php. Cimz jsem chtel jaksi naznacit ze debat jestli je lepsi hrouda ternatu nebo switch je tak nejak mimo :-)

    (poznamka pro phpckare: v pajtnu dokonce ani switch neni a nikomu se po nem nestyska.)
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    27.6.2014 20:23 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    PHP je to asi buřt výkonově, ale pokud v C/C++, tak je se třeba někdy rozhodovat, jestli to udělat konstantně funkčně, nebo universálně dynamicky a je spoustu případů, kde není třeba a je to spíš na závadu do toho tahat nějaké kolekce či fce a může to mít zbytečný dopad na výkon. Nebo představa, že třeba getopt pojedu např. přes map-u se mi vůbec nelíbí, ten switch je takový jasný a čitelný (a to platí i pro PHP).

    ( poznamka pro pythoňáky cítím s vámi :-) )
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    mirec avatar 28.6.2014 09:02 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Přílohy:

    Ah ľudia, už tu nepíšte o výkone lebo ma z toho písania benchmarkov porazí ;-) Ale teraz vážne, trochu som sa teda pozrel na výkon týchto vecí v PHP a pythone, v prílohe malé benchmarky. Je to akože časť syntetizátora prirátávajúca amplitútu kanálov s predvypočítanou tabuľkou sinusovky. Teraz k výsledkom:

    PHP

    Pripočítanie referenčnej hodnoty (0.47): 0.96903800964355 s
                        Sekvencia if/elseif: 1.35397815704350 s
                           Asociatívne pole: 0.98258900642395 s
                           Zreťazený zoznam: 0.97372603416443 s
                                     Switch: 1.00940108299260 s

    Python

    Pripočítanie referenčnej hodnoty (0.47): 1.2208540439605713 s
                        Sekvencia if/elseif: 2.0121259689331055 s
                                       Dict: 2.0311729907989500 s
                                       List: 1.4741299152374268 s

    A teraz trochu nerovný súboj s alterantívnym interpretom pythonu - PyPy

    Pripočítanie referenčnej hodnoty (0.47): 0.04258298873901367 s
                        Sekvencia if/elseif: 0.26957798004150390 s
                                       Dict: 0.07034182548522949 s
                                       List: 0.04564189910888672 s
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    28.6.2014 22:19 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    Dobrý, a kde máš C/C++, kde se s polem dostaneš tak na 0.002 ;-).
    Shrňme to, pokud by toho bylo 10000×, tak:

    • PHP bez dvaceti minut 3 hodiny
    • Python 4 hodiny
    • PyPy 7.6 minuty
    • C++ 20sec
    ;-)

    Na takové věci jako v testu se switch určitě nehodí…

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    mirec avatar 28.6.2014 22:57 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Mne to v C++ dáva 0.014s tj. 3x rýhlejšie než pypy. Ale v každom prípade ani pre PHP ani pre Python mi nerobí problém kritickú časť algoritmu prepísať do C.
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    28.6.2014 23:11 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Kompiluj s -O3.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    28.6.2014 23:16 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Jo a oprav si, ten switch ;)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    28.6.2014 23:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Aj list…
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    28.6.2014 23:53 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Pro info u mě (s opraveným PHP, Python jsem ty čísla v řádku opsal jen do sloupce):
                Python:    PHP:       C++  
       test_ref 0.7845039  0.7905121  0.0020001
        test_if 1.8836648  1.6659939  0.0065734
      test_dict 1.6601350  1.0982060  0.0428780
      test_list 1.2716641  1.6805291  0.0020001
    test_switch            1.7170250  0.0029277
     test_array                       0.0020000
    
    time (bash) pro první 4 testy:
                5.663      5.296      0.048
    
    PS: U C++ je pochopitelně procentní odchylka při opakovaných testech výrazná (je to moc malý vzorek a málo iterací) a není to ani průkazné pro srovnání jednotlivých testů.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    mirec avatar 29.6.2014 15:20 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ako vyzerá opravený PHP kód?
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    29.6.2014 15:36 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Volá v test_list() $this->test_list() a v test_switch() $test->test_switch() ;-)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    Luk avatar 28.6.2014 23:46 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Pro zajímavost: Java 7 je na tom podobně jako PyPy ;-)
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    28.6.2014 23:54 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Dej javu dám C++ :)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    xkucf03 avatar 29.6.2014 12:03 xkucf03 | skóre: 49 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku

    A co teprve Java 8, která mi při 100 000 opakováních dávala poloviční časy oproti 7 ;-)

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
    29.6.2014 12:54 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Příloha:

    Tak jo, já začnu viz příloha (je to jen jednoduchý přepis toho PHP bez invence).

    Dej (dejte oba) Javu ;-)

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    29.6.2014 18:24 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Příloha:
    Kde jste s tou Javou? :),
    kdesi jsem tady o tom psal, tak mně napadlo to dát do mého IMSE (, který není ovšem na takové věci určený). Asociativní pole neobsahuje a ani switch a práce s polem je de-facto list, závorkové hodnoty jsou časy celkem včetně parsování. Bo IMSE je widle-only (IMSE snad ani ne, ale prostředí je v BCB6, takže je to spuštěné na virtuálu VW-32bit pod VMWare - ale na stejném stroji jak ostatní).
                Python:    PHP:       C++:       IMSE:
       test_ref 0.7845039  0.7905121  0.0020001  0.317491 (0.330483)
        test_if 1.8836648  1.6659939  0.0065734  1.076216 (1.087590)
      test_dict 1.6601350  1.0982060  0.0428780
      test_list 1.2716641  1.6805291  0.0020001  0.356221 viz popis
    test_switch            1.7170250  0.0029277
     test_array                       0.0020000  0.356221 (0.366114)
    
    time (bash) pro první 4 testy:
                5.663      5.296      0.048
    

    Evidentně je třeba u scrip. jazyků stále tlačit na vývoj a optimalizaci ;-).

    A aby i ti co si myslí, že nějaký jazyk má hnusnou syntaxi, přikládám zdroják aby věděli, že to může být i horší (na omluvu kdy to začalo vznikat, 32MiB RAM byla slušná paměť - já měl 8MiB)
    (Testy jsem komentoval, bo prostředí profiluje časy běhu, parsování a celkem, tak jsem to opsal).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    mirec avatar 30.6.2014 11:03 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Syntax je to najmenej čo ma trápi u jazyka. Viacej ma trápi nekonzistentnosť. PHP som prestal používať pred mesiacom a už si pamätám totálne minimum. Názvy funkcií ešte ako-tak zvládnem, ale parametre ktoré majú a hlavne poradie parametrov absolútne fuč. Asi pol roka som používal PHP / Python tak 50:50 (v bývalej práci, pred mesiacom som odišiel), je až neuveriteľné koľko krát sa mi stalo že by mi v PHP niečo chýbalo ale opačne asi ani raz.
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    30.6.2014 11:34 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Ty jsi ten test PHP i spouštěl?, ptám se proto, že nevím že je možné declarovat pole způsobem $sin_list = [ a nesežralo mi to, ale je fakt, že nemám kdovíjak novou verzi PHP.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    mirec avatar 30.6.2014 12:37 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Mne to išlo spustiť inak by som namal žiadne výsledky. Tento spôosob definície poľa niekto spomenul tu v diskusii, ja som ani nevedel, že sa niečo také dá.
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    mirec avatar 30.6.2014 12:38 mirec | skóre: 32 | blog: mirecove_dristy | Poprad
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    A ehm ešte drobnosť, ja nie som zaťažený na nejaké nové verzie PHP, v práci som bol niekedy nútený používať PHP5.1 (dokonca aj historickú štvorku). Preto moje zápisy občas vyzerajú tak trochu archaicky.
    LinuxOS.sk | USE="-fotak -zbytocnosti -farebne_lcd +vydrz +odolnost +java" emerge telefon
    Josef Kufner avatar 30.6.2014 14:44 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Zápis polí pomocí hranatých závorek je možný od verze 5.4. Přepiš to na array(). Je to totéž.
    Hello world ! Segmentation fault (core dumped)
    30.6.2014 15:15 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Myslíš, že bych uvedl výsledky testů a neopravil si to(?) ;-) (Stejně jak jsem opravil ty dvě chybná volání vytvořená pomocí copy&paste)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    rADOn avatar 30.6.2014 14:03 rADOn | skóre: 44 | blog: bloK | Praha
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Me se dokonce v pythonu zazacatku stavalo ze kdyz jsem neco nevedel tak jsem si nejak tipnul jak by to "logicky" melo byt… a ono to tak dost casto i bylo. To u PHP fakt nehrozi :-)
    "2^24 comments ought to be enough for anyone" -- CmdrTaco
    pavlix avatar 29.6.2014 15:05 pavlix | skóre: 54 | blog: pavlix
    Rozbalit Rozbalit vše Re: Kolekcie v pythone a PHP bok po boku
    Podle mě je dobré se alespoň snažit přidávat komentáře v kontextu.
    Já už tu vlastně ani nejsem. Abclinuxu umřelo.

    Založit nové vláknoNahoru

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