Article View: pl.comp.lang.python
Article #26691Re: python vs php - potrzebne argumenty
From: Bart Ogryczak
Date: Wed, 25 Nov 2009 17:51
Date: Wed, 25 Nov 2009 17:51
100 lines
4249 bytes
4249 bytes
On Oct 30, 9:14 am, Grzegorz Staniak <gstan...@wp.pl> wrote:
> On 30.10.2009, pakalk <pak...@gmail.com> wroted:
>
> >> Zapytaj kogoś, kto miał na studiach zajęcia ze struktur danych.
> >> Podpowiedź: wydajność.
>
> > Tylko, ze PHP nie ma wcale polaczonych list i hashy (map) w jednej
> > strukturze. Posiada tablice asocjacyjne.
>
> Sprawdź sobie, jak działa 'array'. Ze szczególnym uwzględnieniem
> składni udającej listy.
>
> >> > Eeee... Tablice asocjacyjne z PHP sa powszechnie chwalone
>
> >> Przez kogo konkretnie?
>
> > Przez wiele osob.
>
> A konkretnie? Kto i za co je chwali? Przejdź się na dowolny wydział
> informatyki, zapytaj ludzi od struktur danych. Jeśli usłyszysz
> pochwały, daj znać -- to będą chyba pierwsze jakie PHP od nich
> dostanie.
>
> >> Decyzja o zrobieniu listy-i-hasza jako mapującej struktury danych
> >> jest po prostu debilna.
>
> > Nic takiego nie ma miejsca.
>
> Sorki, ale nie masz pojęcia o czym mówisz. Sprawdź sobie jak jest
> implementowane 'array' i zastanów się, dlaczego składniowo udaje
> również listę.
>
> [...]
>
> >> Poza PHP robi to chyba tylko AWK. Dzięki temu masz strukturę
> >> powolną jak diabli, ale za to pozbawioną zalet listy: jeśli po
> >> usunięciu indeksu muszę używać funkcji żeby indeksy zachowały
> >> ciągłość:
>
> >> $array = array_values($array);
>
> > Pewnie dlatego, ze to nie jest tablica indeksowana 0..n tylko
> > tablica asocjacyjna klucz=>wartosc - to, ze jest to lista, to juz
> > Twoj wymysl.
>
> Składniowo udaje listę, prawda? Normalny hasz nie pozwala na
> deklarowanie go np. jako '$array = array("a", "b", "c");'.
>
> > Dziwne by bylo tez, gdyby zachowywalo sie to inaczej
> > dla roznych typow indeksow.
>
> Dziwne to jest np. to dlaczego PHP nie ma list, tylko protezę
> w postaci specjalnego zachowania haszy. Chodzi w końcu o dość
> podstawowy typ danych. Zmuszanie ludzi do używanie kulawej
> pseudo-listy, ale za to powolnej, to jest dość typowy dla PHP
> przypadek strzelania sobie w stopę.
To przy okazji zagadka:
Jeśli $a == $b oraz $a i $ b są tego samego typu, to co można
powiedzieć o relacji między $array[$a] i $array[$b]?
<spoiler space>
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
<?php
$array = array('0' => 'a', '00' => 'b');
$a = '0'; $b = '00';
var_dump($a == $b);
var_dump($array[$a]);
var_dump($array[$b]);
?>
bool(true)
string(1) "a"
string(1) "b"
Technical Details
Message-ID:
<b793e5c7-90fc-4a41-ad54-31d2a67f62dc@b15g2000yqd.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!b15g2000yqd.googlegroups.com!not-for-mailReferences:
<h83in7$rl3$1@inews.gazeta.pl> <h8447e$mg9$1@inews.gazeta.pl> <6a8e97cb-add7-450a-b7f2-f16ecc3cd0f6@y23g2000yqd.googlegroups.com> <6a691836-80db-4b66-bc41-f3c15e6782f7@v36g2000yqv.googlegroups.com> <6e26a02f-20fa-4a82-a722-9fbf78f0ef29@z41g2000yqz.googlegroups.com> <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com> <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com> <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com> <hce79t$m49$1@news.lublin.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!b15g2000yqd.googlegroups.com!not-for-mail From: Bart Ogryczak <b.ogryczak@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: python vs php - potrzebne argumenty Date: Wed, 25 Nov 2009 09:51:37 -0800 (PST) Organization: http://groups.google.com Lines: 102 Message-ID: <b793e5c7-90fc-4a41-ad54-31d2a67f62dc@b15g2000yqd.googlegroups.com> References: <h83in7$rl3$1@inews.gazeta.pl> <h8447e$mg9$1@inews.gazeta.pl> <6a8e97cb-add7-450a-b7f2-f16ecc3cd0f6@y23g2000yqd.googlegroups.com> <6a691836-80db-4b66-bc41-f3c15e6782f7@v36g2000yqv.googlegroups.com> <6e26a02f-20fa-4a82-a722-9fbf78f0ef29@z41g2000yqz.googlegroups.com> <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com> <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com> <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com> <hce79t$m49$1@news.lublin.pl> NNTP-Posting-Host: 94.100.112.225 Mime-Version: 1.0 X-Trace: posting.google.com 1259171497 19169 127.0.0.1 (25 Nov 2009 17:51:37 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 25 Nov 2009 17:51:37 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: b15g2000yqd.googlegroups.com; posting-host=94.100.112.225; posting-account=1kG_1AoAAADLEA3eucGvO2J-Uo4aPCW_ User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) FirePHP/0.3,gzip(gfe),gzip(gfe) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit