[Python] dubbi random
Lawrence Oluyede
l.oluyede a gmail.com
Lun 2 Mar 2009 11:52:22 CET
On Mon, Mar 2, 2009 at 11:42 AM, Matteo Bertini <matteo a naufraghi.net> wrote:
> Ciao a tutti! Stamani ho un paio di dubbi random:
>
> 1) E' possibile usare functools.partial con funzioni come time.strptime?
>
> Docstring:
> strptime(string, format) -> struct_time <--- anche se la
> documentazione dice strptime(string[, format])
>
> In [35]: parse_time = functools.partial(time.strptime, format="%d/%m/%Y
> %H:%M")
> In [36]: parse_time("12/12/2009 2:34")
> TypeError Traceback (most recent call last)
> TypeError: strptime() takes no keyword arguments
Un trucco e` invertire i parametri:
In [9]: functools.partial(lambda f, s: time.strptime(s, f), "%d")("3")
Out[9]: (1900, 1, 3, 0, 0, 0, 2, 3, -1)
Come vedi, ho creato una lambda che prende i parametri invertiti per
passarli nel modo giusto a time.strptime.
Non e` di certo il modo migliore :-D
> 2) set.add(item) ha due possibili effetti (a) se item č giā in set non
> fa niente (b) se item non č in set lo aggiunge.
>
> Spesso mi ritrovo a creare funzioni di utilitā come:
>
> def added(aset, item):
> if item in aset:
> return False
> else:
> aset.add(item)
> return True
>
> Non potrebbe aver senso avere un set che in qualche modo notifichi un
> cambiamento del suo stato?
Secondo me no, almeno per come la vedo io. Perche` ti deve interessare sapere
se un oggetto e` stato aggiunto in un set? Sai che in un set ci
entrano a meno che non siano un duplicato di qualcosa
di gia` esistente.
> Per analogia:
> le liste non hanno chiamate nop
[].extend([]) e` una nop
> il set č un po' una via di mezzo...
Il set() e` un insieme, che supporta operazioni insiemistiche.
L'aggiunta di un elemento esistente non altera lo stato
del set. Se proprio ci tieni puoi controllare len(s) prima e dopo
l'inserimento, per vedere se la sua dimensione e` cambiata.
Oppure usare l'in come hai fatto tu per sapere se c'e` o meno.
--
Lawrence, http://oluyede.org - http://twitter.com/lawrenceoluyede
"It is difficult to get a man to understand
something when his salary depends on not
understanding it" - Upton Sinclair
Maggiori informazioni sulla lista
Python