Re: [Python] media di un generatore
Il giorno Tue, 10 Dec 2013 23:20:10 -0500 Piergiuliano Bossi pgbo...@gmail.com ha scritto: Pensiero malvagio: - con enumerate genero una serie di coppie (v, n) - le zippo e quindi ottengo 2 sequenze (v1, v2, ...) e (1, 2, ...) = assumo di poter zippare le generator expression, oppure gia' qui sto sbagliando? - calcolo le somme di entrambe - sfrutto il fatto che sum(1, 2, ...) altri non e' che n * (n + 1) / 2, per cui divido sum(v1, v2, ...) per la soluzione positiva di n^2 + n - 2 * sum(1, 2, ...) = 0, cioe' 1/2 * (sqrt(8 * sum(1, 2, ..) + 1) - 1) Potrebbe funzionare, ma e' talmente assurdo che manco ci provo a vedere se sto toppando qualcosa. :) mhh... magari funziona però non mi sembra molto conveniente e soprattutto leggibile stare a zippare e unzippare più del necessario. Inoltre, invece di fare tutti quei calcoli con sqrt e altro, basta _non_ usare enumerate ma simularlo con una genexpr che yielda tuple di valori della sequenza in uso e uni che poi sommi tra loro senza fare altre operazioni, tipo così: import itertools, operator def avgfoo(seq): try: return operator.div(*map(sum, itertools.izip(*((x, 1.) for x in seq except TypeError: return 0 avgfoo(range(10)) # 4.5 che però oltre ad essere molto meno leggibile dovrebbe essere anche (molto) meno efficiente e inutilmente complessa. -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] media di un generatore
Il giorno Tue, 10 Dec 2013 18:58:48 -0500 Piergiuliano Bossi pgbo...@gmail.com ha scritto: On Tuesday, December 10, 2013, Marco Beri wrote: [...] def avg(gen): n, sum_ = 0, 0.0 for v in gen: sum_ += v n += 1 return sum_ / n Cos'ha questo di brutto? Tra l'altro funziona anche con le liste e le tuple.. Nulla, ma è il modo più idiomatico di farlo? Fate tutti così? Dai confessa... :) non molto diverso in realtà... ma potresti usare enumerate: def avg(seq): tot = 0.0 for n, v in enumerate(seq, 1): tot += v try: return tot / n except UnboundLocalError: return 0 # ??? capisco che il try/except finale non è molto bello, ma forse lo dovrai/vorrai utilizzare anche con altri metodi, nel caso in cui passi una sequenza che non contiene alcun elemento (ad esempio nell'altro codice sopra avresti un ZeroDivisionError). Non ho capito bene quando parli di la creazione di 2 iteratori in itertools.izip(*generator) non mi pare faccia quello che ti serve, forse intendevi itertools.tee ? Quest'ultimo potrebbe essere una soluzione però non credo valga la pena di creare dei doppioni (soprattutto con sequenze lunghe) quando puoi fare con un unico for... def avgtee(seq): it1, it2 = itertools.tee(seq) try: return sum(it1) / float(sum(1 for _ in it2)) except ZeroDivisionError: return 0 # ??? non ho fatto test particolarmente approfonditi, btw qualche risultato: In [22]: lst = list(range(10)) In [23]: %timeit avg(lst) 100 loops, best of 3: 12.2 ms per loop In [24]: %timeit avgtee(lst) 100 loops, best of 3: 9.27 ms per loop In [25]: gen = (x for x in lst) In [26]: %timeit avg(gen) 10 loops, best of 3: 2.07 us per loop In [27]: gen = (x for x in lst) In [28]: %timeit avgtee(gen) 10 loops, best of 3: 3.57 us per loop -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Copiare un file
Il giorno Thu, 24 Oct 2013 11:34:27 +0200 Daniele Palmese pal...@gmail.com ha scritto: Il giorno 24 ottobre 2013 09:10, Luigi Fontana picchiole...@gmail.com ha scritto: Quindi devo prima usare un comando che mi crei un file vuoto e poi copiarci dentro i dati? No, devi semplicemente indicare il nome del file di destinazione, facendo attenzione al path: shutil.copyfile('prova01.py', '/path/di/destinazione/Documenti/come_vuoi_chiamarlo.py') Ciao. Daniele oppure usi l'altra funzione segnalata che ti crea un file con lo stesso nome di quello che vai a copiare nella dir indicata da dst. Dipende cosa ti è più comodo. -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Copiare un file
Il giorno Wed, 23 Oct 2013 22:18:04 +0200 Luigi Fontana picchiole...@gmail.com ha scritto: Ciao Nella mia cartella Programmi ho un file chiamato prova01.py. Volevo copiarlo nella cartella Documenti ma col comando shutil.copyfile(prova01.py, Documenti) Mi da errore. Cosa sbaglio? dalla doc: shutil.copyfile(src, dst) Copy the contents (no metadata) of the file named src to a file named dst. dst must be the complete target file name; look at shutil.copy() for a copy that accepts a target directory path. dst dev'essere il file di destinazione. -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] cicli multi processo
Il giorno Thu, 24 Oct 2013 00:06:18 +0200 Simone Federici s.feder...@gmail.com ha scritto: On Wed, Oct 23, 2013 at 11:41 AM, Vittorio Spina vsp...@team-italia.itwrote: quindi in pratica un ciclo su un vero thread separato e un ciclo nel main che si scambiano una variabile? [...] è solo un esempio preso paro paro dal tuo codice sui threads però ti conviene approfondire i Manager, Queue e Pipe Inoltre se con che si scambiano una variabile intendi che i due (o più) processi possono modificarla oltre che leggerla devi usare per forza i Lock. -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] problema di licenze...
Il giorno Sun, 08 Sep 2013 10:18:13 +0200 Perini Matteo perini.mat...@gmail.com ha scritto: Qualcuno mi potrebbe dare una dritta su che licenza devo/posso utilizzare in un contesto simile. Pygame non usa la gpl ma la lgpl 2.1, mentre quella di PIL è una mit-like. Sono rimasto stupito di vedere sul sito di numpy ad esempio è riportata [0] BSD License ma se clicco sul link License [1] trovo: Copyright © 2005-2013, NumPy Developers. All rights reserved. [0] http://www.numpy.org/index.html [1] http://www.numpy.org/license.html Mi sono perso qualche cosa? è proprio quella, che continua nelle righe sotto :-) Comunque la questione fondamentale è come posso rilasciare il mio codice che include le librerie sopra e con che licenze posso farlo. Grazie Ciao M. Sono tutte compatibili tra loro per cui puoi usarne una qualsiasi tra quelle. ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Appena iscritto
Il giorno Sat, 3 Aug 2013 19:24:16 +0200 Carlos Catucci carlos.catu...@gmail.com ha scritto: 2013/8/3 Marco Chieppa | crap0101 crap0...@riseup.net python therapy? Un pitone come pet? Carlos o come terapia d'urto, non son sicuro... signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Problemi con time
Il giorno Fri, 28 Jun 2013 03:01:02 +0200 Marcello marce...@linuxvil.it ha scritto: Ciao a * ho una stringa che recupero da un DB tempo = 2013-06-25 16:25:00 e dovrei modificare in 25/06/2013 16:25 potrei utilizzare string per spostare i caratteri, ma vorrei utilizzare time per vari motivi. quindi provo con print time.strftime(%d/%m/%Y %H.%M ,time.localtime(tempo)) [...] così? tempo = 2013-06-25 16:25:00 time.strftime(%d/%m/%Y %H:%M, time.strptime(tempo,%Y-%m-%d %H:%M:%S)) '25/06/2013 16:25' (localtime non si aspetta una stringa) signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] doctest: SyntaxError: EOF while scanning triple-quoted string literal
Il giorno Tue, 18 Sep 2012 21:30:15 +0200 Pietro peter.z...@gmail.com ha scritto: Perché il primo doctest funziona e il secondo no? Perché mandare a capo all'interno della triple quotig dovrebbe essere un problema? Il problema non è andare a capo ma come vai a capo. Il codice che testi deve assomigliare a quello che avresti in una sessione interattiva, per cui devi mettere i e ... quando serve, cioè dovrebbe essere mathmlstr = '''mrow ... msupmia/mimn2/mn/msup/mrow''' -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] modulo v4l
Il giorno Sun, 22 Apr 2012 22:33:51 +0200 Francesco Bonanno i...@francescobonanno.com ha scritto: Salve, è la seconda volta che chiedo un consiglio alla lista. ho la necessità di installare il modulo(?) v4l (video for linux). Cercando in rete ho trovato un sacco di roba ma che alla fine facendo import v4l, ho la solita risposta di no module named v4l. ma... il modulo funzionante dove l'avevi preso? Si riesce a capire leggendo nei file? Ho un sacco di codice scritto usando questo modulo e mi costerebbe tantissimo doverlo riadattare Non vorrei scoraggiarti, però facendo una rapida ricerca ho trovato 4 progetti di v4l per python (di cui uno con nulla dentro :-) ); il primo http://pyv4l.sourceforge.net/ è ormai non più mantenuto e considerato obsoleto (e da pezzi di codice trovati in giro temo proprio si tratti di questo) il secondo è questo http://code.google.com/p/python-video4linux2/source/browse/#svn%2Ftrunk%253Fstate%253Dclosed e non sembra passarsela meglio del primo, e infine su pypi http://pypi.python.org/pypi/v4l2 anche di questo l'ultimo update non è recentissmo, ma forse è meglio dei precedenti. Inoltre, se non ho capito male e le api di v4l sono cambiate (come sembra indicare il link nel primo link) neanche trovare e usare quello/i vecchi potrebbe andare più bene. ciao, m. -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Libro Programmare con Python.
Il giorno Thu, 19 Jan 2012 01:24:38 +0100 Marco Beri marcob...@gmail.com ha scritto: 2012/1/19 Emanuele Rampichini emanuele.rampich...@gmail.com L'import error é ripetuto identico sulla colonna di python2 e python3 :) Ho vinto qualcosa? No :-) Per due motivi: - non è identico - se anche lo fosse io ho parlato di inversione la sesta? 1 in d -- d.has_key(1) -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Un aiuto per neofita alle prime armi
Il giorno Fri, 13 Jan 2012 12:12:13 +0100 Alberto Abate alberto.ab...@gmail.com ha scritto: Ciao, per iniziare penso che ti sia utile vedere questi... http://www.youtube.com/playlist?list=PLC64779F4E2E7EB10feature=g-all-a oh no! nessun neofita dovrebbe essere esposto a quei video, fanno più male che bene (nell'ipotesi migliore non fanno nulla). -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: PGP signature ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] tkinter di esempio che si blocca
Il giorno lun, 20/12/2010 alle 22.58 +0100, Massimo Capanni ha scritto: se premo QUIT il prompt viene restituito nella shell ma la finestra di Tk si blocca: [...] quit() ti fa uscire dal mainloop, però se vuoi distruggere la finestra devi chiamare destroy() -- me - http://crap0101.gnu-darwin.org/ signature.asc Description: Questa è una parte del messaggio firmata digitalmente ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] script bash-pipe compatibile
Il giorno sab, 24/10/2009 alle 15.15 +0200, Matteo Bertini ha scritto: Il 24/10/09 14.43, Giorgio Zoppi ha scritto: popen? Non capisco in che modo, non ho sottoprocessi, forse mi sono spiegato male. già... ho inteso male. m. signature.asc Description: Questa è una parte del messaggio firmata digitalmente ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] script bash-pipe compatibile
Il giorno sab, 24/10/2009 alle 14.32 +0200, Matteo Bertini ha scritto: Ho provato un po' a giocare con try except senza però beccare il punto giusto... Suggerimenti? Matteo Bertini ___ Ho fatto qualche prova e così dovrebbe funzionare, ma penso anch'io che la soluzione migliore sia popen crap0...@gns01:~/Scrivania$ cat echo2.py import sys def gs (): for line in sys.stdin: yield line if __name__ == '__main__': try: sys.stdout.writelines (gs ()) except IOError: pass crap0...@gns01:~/Scrivania$ python -c for x in range(200): print 'line'*(x+1) | python echo2.py | head -n 5 line lineline linelineline linelinelineline linelinelinelineline crap0...@gns01:~/Scrivania$ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python -- me - http://crap0101.gnu-darwin.org signature.asc Description: Questa è una parte del messaggio firmata digitalmente ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python