7 luglio 2009

Python sugar

Un po' di zucchero per mandare giù le pillole, fa sempre bene (quest'uso della virgola, 'enfatica', fra soggetto e verbo mi viene dalla recente lettura di un libro che ne teorizza il valore nella rappresentazione scritta del linguaggio parlato).

I dizionari sono una invenzione imperdibile e moltissimi linguaggi ad alto livello, usando nomi diversi, ne fanno un uso così intensivo da averli fatti assurgere a tipi di dato built-in (python, php, perl e javascript, tanto per citare quelli che mi vengono in mente al volo fra quelli che conosco).
Meno interessante, perchè più antico, l'uso di array (che ora sono delle liste mascherate, o almeno così pare, dietro la parvenza di array), ma comunque degno di nota.

è però anche necessario trovare un modo per usarli nel modo più efficace possibile.

Oggi vediamo uno degli zuccherini di python a riguardo.
Prendiamo le seguenti dichiarazioni:



2 funzioni, un dizionario e una lista. Beh?
Non vi piacerebbe un sacco poter usare il dizionario o la lista come parametri per le funzioni senza obbligare le funzioni a ricevere come parametro un'illeggibile lista (o un non meno illeggibile dizionario)?

Detto fatto:



Magia. Sti cazzi, magia!

5 commenti:

  1. mhuha mhuha mhuha :-)
    geniale, risultato e chi lo ha pensato :-)))
    Enjoy!
    JJ


    ps:
    ci provo in ruby?

    RispondiElimina
  2. ruby update: passare il puntatore dell'array funziona; quando passo il puntatore alla hash sembra ignorare la dichiarazione delle variabili e si comporta come un array... indaghero' in un momento di calma :-)
    Visto che son qua, ti faccio i complimenti e ti invito a continuare con la tua sezione geek/nerd/tecnica: blog in italiano ce ne sono pochini (a mio gusto ed interesse) :-)

    Enjoy,
    JJ

    RispondiElimina
  3. JJ: anche in python se chiami a(*m) è come se gli avessi passato un array contenente le chiavi del dizionario (l'utilità mi sfugge, ma potrebbe essere un side effect).
    per i dizionari, come avrai notato, ci vogliono 2 asterischi (non voglia chiamarli in altro modo, che è meglio...).

    Rampo: Isis, non sono andato #@!!£%$*§@!
    problemi di famiglia del mio compagno di avventura l'hanno trattenuto a casa lunedisse e l'idea di farmi Milano-Torino, mini festival di cui conoscevo solo gli headliner (Isis appunto), ritorno Torino-Milano a orario e stanchezza improponibili, mi hanno trattenuto. Roba bad, lo so. E infatti il giorno dopo il tuo 26 non ho resistito e mi sono comprato il loro ultimo disco, che speravo di comprare a "prezzo concerto" a Torino.
    Stratosferico, veramente.
    Domani vado a sentire delle casse con mio padre, che ha avuto una folgorazione di cambio impianto di casa e lo satrepitoso Wavering Radiant (l'ultimo) e il mai abbastanza osannato Panopticon (ormai 3 dischi fa) saranno dei momenti imprescindibili della prova (devo ancora decidere l'estratto dall'ultimo, mentre In Fiction è una quasi certezza).

    Aggiornerò.

    RispondiElimina
  4. Si si, certo... ho omesso come informazione 'irrilevante' il fatto che passando il 'doppio-asterisco' al chiamato arriva qualcosa che non e' (evidentemente) quello che si aspetta. Per questo ho ripiegato ad asterisco-dizionario, scoprendo che arriva l'array di coppie... 0_o logico mi pare logico... vorrei capire solo cosa arriva e come interpreta ruby il puntatore di puntatore ad hash...

    RispondiElimina