Re: [Python] Problemino curioso

2009-06-19 Per discussione Francesco Guerrieri
On Fri, Jun 19, 2009 at 12:13 PM, Jelle
Gerbrandy wrote:
> (l+[''])[0]
>
> ___
> Python mailing list
> [email protected]
> http://lists.python.it/mailman/listinfo/python
>

Per migliorare la leggibilità l'interprete offre ancora qualcosa:
>>> ["a","b"]
['a', 'b']
>>> (_+[''])[0]
'a'
>>>


Non capisco questa mania di usare nomi generici come "l" quando è
tanto facile comunicare il nostro intento con _ ..

:-)
Francesco
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-19 Per discussione Jelle Gerbrandy
(l+[''])[0]

___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Manlio Perillo
Marco Beri ha scritto:
> 2009/6/18 Manlio Perillo  >
> 
> Questa sfrutta le precenze degli operatori:
> l or[""][0]
> 
> 
> Questa pero` non funziona.
> 
 l=[]
 l or[""][0]
> ''
 l=["2"]
 l or[""][0]
> ['2']
> 

Si, infatti è sbagliata.

Se aspetti ti patcho CPython in modo da farlo funzionare come voglio.



Ciao  Manlio
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Manlio Perillo
Carlo C8E Miron ha scritto:
> 2009/6/18 Manlio Perillo :
>> Questa sfrutta le precenze degli operatori:
>> l or[""][0]
>> Devo ammettere che il risultato mi ha sorpreso.
> 
> Anche a me::
> 
 l
> ['ciao', 'mondo']
 l or[""][0]
> ['ciao', 'mondo']
> 
> WTF??
> ©

Ecco che succede ad non avere le test suite complete...


Ciao  Manlio
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Marco Beri
2009/6/18 Manlio Perillo 

> Questa sfrutta le precenze degli operatori:
> l or[""][0]


Questa pero` non funziona.

>>> l=[]
>>> l or[""][0]
''
>>> l=["2"]
>>> l or[""][0]
['2']




-- 
http://thinkcode.tv - Prossimamente su questi schermi
http://beri.it - Blog di una testina di vitello
http://stacktrace.it - Aperiodico di resistenza informatica
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Carlo C8E Miron
2009/6/18 Manlio Perillo :
> Questa sfrutta le precenze degli operatori:
> l or[""][0]
> Devo ammettere che il risultato mi ha sorpreso.

Anche a me::

>>> l
['ciao', 'mondo']
>>> l or[""][0]
['ciao', 'mondo']

WTF??
©
-- 
Carlo C8E Miron
Hey Man, WTF? Solution Architect™





___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Carlo C8E Miron
2009/6/18 Ivan Giuliani :
> l[:1] or ""?

In questo caso gli spazi non servono ;)
l[:1]or"" e` lunga 9, ma come la precedente fornisce un risultato
errato: una lista contenente una stringa invece che una stringa.
Cheers,
©
-- 
Carlo C8E Miron
Short But Wrong Solution Architect™





___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Giovanni Porcari


Il giorno 18/giu/09, alle ore 20:53, Marco Beri ha scritto:

> Oggi ho dovuto risolvere questo problemino: data una lista di  
> stringhe, prendere la prima di queste. La lista puo` essere  
> potenzialmente vuota e in questo caso prendere la stringa vuota.
> Quindi, in python, data la lista l, una possibile soluzione su una  
> linea puo` essere:
> "" if len(l) == 0 else l[0]
> Si tratta di 27 caratteri.
> Siccome quando ci si intrippa di Progetto Eulero il cervello si  
> deforma, ho provato a pensare ad un costrutto, magari meno pulito,  
> che pero` occupasse meno caratteri.
> E ho pensato a questa schifezza da 18 caratteri:
> (l[:1] or [""])[0]
> Siccome non mi faceva abbastanza schifo ho trovato questa da 17:
> [l or [""]][0][0]
>
> Ma io dico che si puo` fare molto meglio.
> Vediamo chi ci arriva per primo :-)

Mi butto con:

l and l[0] or ""


G.
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Manlio Perillo
Luca Mearelli ha scritto:
> 2009/6/18 Marco Beri :
>> "" if len(l) == 0 else l[0]
> ...
>> [l or [""]][0][0]
> 
> l[0] if l else ""
> 
> questa e' sempre di 17 (ma assomiglia un po piu alla tua prima :-) )
> 
> mentre questa e' di 11
> 
> (l+[""])[0]
> 
> chissa se c'e' di meglio (mi sa di si)
> 

Questa sfrutta le precenze degli operatori:
l or[""][0]


Devo ammettere che il risultato mi ha sorpreso.

Peccato per lo spazio da aggiungere per separare il nome `l`
dall'operatore `or`.


Ciao  Manlio

___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Marco Beri
2009/6/18 Ivan Giuliani 

l[:1] or ""

2009/6/18 Luca Mearelli 

(l+[""])[0]

Azz... io avevo pensato a quella di Ivan mentre quella di Luca proprio mi
era sfuggita :-)

Dunque, vediamo un po':

27: "" if len(l) == 0 else l[0]
18: (l[:1] or [""])[0]
17: [l or [""]][0][0]
14: "".join(l[:1])
11: (l+[""])[0]
11: l[:1] or ""

Non credo si possa fare di meglio, ma chissa`...
Magari riempiamo qualche numero in mezzo :-)
Ciao.
Marco.

-- 
http://thinkcode.tv - Prossimamente su questi schermi
http://beri.it - Blog di una testina di vitello
http://stacktrace.it - Aperiodico di resistenza informatica
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Luca Mearelli
2009/6/18 Marco Beri :
>     "" if len(l) == 0 else l[0]
...
>     [l or [""]][0][0]

l[0] if l else ""

questa e' sempre di 17 (ma assomiglia un po piu alla tua prima :-) )

mentre questa e' di 11

(l+[""])[0]

chissa se c'e' di meglio (mi sa di si)

Luca
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


Re: [Python] Problemino curioso

2009-06-18 Per discussione Ivan Giuliani
2009/6/18 Marco Beri :
> Oggi ho dovuto risolvere questo problemino: data una lista di stringhe,
> prendere la prima di queste. La lista puo` essere potenzialmente vuota e in
> questo caso prendere la stringa vuota.
> Quindi, in python, data la lista l, una possibile soluzione su una linea
> puo` essere:
>     "" if len(l) == 0 else l[0]
> Si tratta di 27 caratteri.
> Siccome quando ci si intrippa di Progetto Eulero il cervello si deforma, ho
> provato a pensare ad un costrutto, magari meno pulito, che pero` occupasse
> meno caratteri.
> E ho pensato a questa schifezza da 18 caratteri:
>     (l[:1] or [""])[0]
> Siccome non mi faceva abbastanza schifo ho trovato questa da 17:
>     [l or [""]][0][0]
>
> Ma io dico che si puo` fare molto meglio.
> Vediamo chi ci arriva per primo :-)
>
> Ciao.
> Marco.

l[:1] or ""? Sono 11 caratteri :-)
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python


[Python] Problemino curioso

2009-06-18 Per discussione Marco Beri
Oggi ho dovuto risolvere questo problemino: data una lista di stringhe,
prendere la prima di queste. La lista puo` essere potenzialmente vuota e in
questo caso prendere la stringa vuota.
Quindi, in python, data la lista l, una possibile soluzione su una linea
puo` essere:
"" if len(l) == 0 else l[0]
Si tratta di 27 caratteri.
Siccome quando ci si intrippa di Progetto Eulero il cervello si deforma, ho
provato a pensare ad un costrutto, magari meno pulito, che pero` occupasse
meno caratteri.
E ho pensato a questa schifezza da 18 caratteri:
(l[:1] or [""])[0]
Siccome non mi faceva abbastanza schifo ho trovato questa da 17:
[l or [""]][0][0]

Ma io dico che si puo` fare molto meglio.
Vediamo chi ci arriva per primo :-)

Ciao.
Marco.

--
http://thinkcode.tv - Prossimamente su questi schermi
http://beri.it - Blog di una testina di vitello
http://stacktrace.it - Aperiodico di resistenza informatica
___
Python mailing list
[email protected]
http://lists.python.it/mailman/listinfo/python