Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Alessandro Re
2015-02-25 15:03 GMT+00:00 Carlos Catucci carlos.catu...@gmail.com:
 Salve gente

 stavolta non so dove sbattere la testa.
 Devo avere le combinazioni possibili di una seire di liste.

 Esempio
 L1 = [a,b,c,]
 L2 = [d,e]
 L3 = [f,g]

 Mi servono

 [a.d.f],[a.d.g],[a.e.f],[a.e.g],
 [b.d.f],[b.d.g],[b.e.f],[b.e.g.],
 [c.d.f],[c.d.g],[c.e.f],[c.e.g]

 solo che la lista che mi crea problemi e'


 [[3760], [3759, 3762, 3763, 3770], [3769, 3778], [7607, 3781, 3780, 3779,
 3777, 3773, 3774, 14617], [7476, 3788, 7475, 3786, 7472, 16514, 3784, 7470,
 3783, 3789, 7477, 7608], [3806, 3805, 3804, 3803, 3802, 7532, 7530, 7534,
 3813], [17164, 7486, 7490, 7491, 7492, 3814, 7495, 3818], [3819, 4216],
 [4217, 4220], [4219, 4268], [4267, 6475, 4273], [4271, 4272, 18235], [18236,
 18244], [18245, 18246, 20232], [20234, 20237], [20236, 34978], [8389]]

 Ho idea che un totale di 13 liste di cui la piu' lunga conta 12 elementi e
 un'altro paio 8 o 9 elemnti, sia piu' di quanto il povero itertools.product
 (che suppongo a questo punto usi la ricorsivita') possa reggere, infatti mi
 tira fuori un bellissimo segmentation fault.

 Mi choiedo, c'e' quna strada alternativa per fare la stessa cosa che fa
 product con una diversa libreria?

 Carlos

Il prodotto cartesiano di N liste di dimensioni N1, N2, N3.. è un
elemento di dimension N1*N2*N3*... Ha complessità esponenziale, quindi
occhio ai numeri :)

Nel tuo caso:

import functools
liste = [[3760], [3759, 3762, 3763, 3770], [3769, 3778], [7607, 3781,
3780, 3779, 3777, 3773, 3774, 14617], [7476, 3788, 7475, 3786, 7472,
16514, 3784, 7470, 3783, 3789, 7477, 7608], [3806, 3805, 3804, 3803,
3802, 7532, 7530, 7534, 3813], [17164, 7486, 7490, 7491, 7492, 3814,
7495, 3818], [3819, 4216], [4217, 4220], [4219, 4268], [4267, 6475,
4273], [4271, 4272, 18235], [18236, 18244], [18245, 18246, 20232],
[20234, 20237], [20236, 34978], [8389]]
functools.reduce(lambda a,b: a*len(b), liste, 1)

Esce 95'551'488

Se ci aggiungi un'altra lista da 10 elementi, diventano 950 milioni di
disposizioni.

Ora, io suppongo che il tuo problema non sia dovuto alla ricorsione,
ma proprio alla scala del problema... 95 milioni di oggetti non sono
necessariamente facili da gestire.

Non so com'é implementata itertools.product, ma secondo me non usa la
ricorsione. Ed è pure un generatore, quindi non si incanta neanche a
fare tutti i conti prima del necessario (quindi, anche fosse
ricorsiva, il problema è legato a quante next() usi).

Sei sicuro di stare usando il metodo giusto per risolvere il problema?
Non hai alternative a visitare tutte le combinazioni?
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Carlos Catucci
Salve gente

stavolta non so dove sbattere la testa.
Devo avere le combinazioni possibili di una seire di liste.

Esempio
L1 = [a,b,c,]
L2 = [d,e]
L3 = [f,g]

Mi servono

[a.d.f],[a.d.g],[a.e.f],[a.e.g],
[b.d.f],[b.d.g],[b.e.f],[b.e.g.],
[c.d.f],[c.d.g],[c.e.f],[c.e.g]

solo che la lista che mi crea problemi e'


[[3760], [3759, 3762, 3763, 3770], [3769, 3778], [7607, 3781, 3780, 3779,
3777, 3773, 3774, 14617], [7476, 3788, 7475, 3786, 7472, 16514, 3784, 7470,
3783, 3789, 7477, 7608], [3806, 3805, 3804, 3803, 3802, 7532, 7530, 7534,
3813], [17164, 7486, 7490, 7491, 7492, 3814, 7495, 3818], [3819, 4216],
[4217, 4220], [4219, 4268], [4267, 6475, 4273], [4271, 4272, 18235],
[18236, 18244], [18245, 18246, 20232], [20234, 20237], [20236, 34978],
[8389]]

Ho idea che un totale di 13 liste di cui la piu' lunga conta 12 elementi e
un'altro paio 8 o 9 elemnti, sia piu' di quanto il povero itertools.product
(che suppongo a questo punto usi la ricorsivita') possa reggere, infatti mi
tira fuori un bellissimo segmentation fault.

Mi choiedo, c'e' quna strada alternativa per fare la stessa cosa che fa
product con una diversa libreria?

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Daniele Zambelli
Il 25 febbraio 2015 16:03, Carlos Catucci carlos.catu...@gmail.com ha scritto:
 Ho idea che un totale di 13 liste di cui la piu' lunga conta 12 elementi e
 un'altro paio 8 o 9 elemnti, sia piu' di quanto il povero itertools.product
 (che suppongo a questo punto usi la ricorsivita') possa reggere, infatti mi
 tira fuori un bellissimo segmentation fault.

Non credo che usi la ricorsione altrimenti darebbe un errore di
ricorsione troppo profonda. Il risultato che vuoi ottenere è una lista
di:

95.551.488 di elementi.

Comunque da me funziona.

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Marco Beri
On Feb 25, 2015 5:42 PM, Carlos Catucci carlos.catu...@gmail.com wrote:

 Comunque scrivendo

 for row in itertools.product(*liste):

Ma scusa, prima cosa facevi?

Gli itertools vanno usati proprio così.

Mica devi fare list(...)  altrimenti scoppia tutto con tanti elementi.

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Carlo Miron
2015-02-25 17:41 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:

 qry = INSERT INTO importdata_combinazioni (paragraph_id, parent_id,
 combinazione) VALUES (%s, %s, '%s'); % (old_para, old_parent,
 list(row))

Bobby Tables.

©

-- 
|:**THE BEER-WARE LICENSE** (Revision 42):
| mi...@python.it wrote this mail. As long as you retain
| this notice you can do whatever you want with this stuff.
| If we meet some day, and you think this stuff is worth it,
| you can buy me a beer in return.
|--Carlo Miron :
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Marco Giusti
On Wed, Feb 25 2015, Carlo Miron wrote:
 2015-02-25 17:41 GMT+01:00 Carlos Catucci carlos.catu...@gmail.com:
 
  qry = INSERT INTO importdata_combinazioni (paragraph_id, parent_id,
  combinazione) VALUES (%s, %s, '%s'); % (old_para, old_parent,
  list(row))
 
 Bobby Tables.

:D
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] byte e python 2.7.9

2015-02-25 Per discussione Massimiliano della Rovere
Ora non ho modo di provarlo ma credo che struct.unpack(c, serie) possa
essere utile.

https://docs.python.org/2/library/struct.html

Il giorno mer 25 feb 2015 18:41 Filippo Dal Bosco - 
filippo.dalbo...@whiteready.com ha scritto:

 python 2.7.9

 Data una serie di bytes tipo questa:

 serie= b'R\xa0\xb6\xc9u\x0f](\t$\xd4'

 se faccio

 print serie

 ottengo (circa..)

 R���u ]($�

 come faccio invece ad ottenere proprio questo

 b'R\xa0\xb6\xc9u\x0f](\t$\xd4'

 detto in altre parole come faccio a stampare la rappresentazione ( =il
 significante) del byte invece che il suo significato?

  ho provato in molti modi ma non ci sono riuscito

 sono solo riuscito ad ottenere una lista

 print map(None,serie)

 ma non mi va bene.

 --
 Filippo
 ___
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/mailman/listinfo/python

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Carlos Catucci
2015-02-25 17:59 GMT+01:00 Marco Beri marcob...@gmail.com:

 Mica devi fare list(...)  altrimenti scoppia tutto con tanti elementi.



Ovvio che lo facevo, senno' come facevo a crearmi il problema ;)
Avevo trovato un esempio con list esiccome con le liste iniziali (piccine)
andava bene ...

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] byte e python 2.7.9

2015-02-25 Per discussione Filippo Dal Bosco -
python 2.7.9

Data una serie di bytes tipo questa:

serie= b'R\xa0\xb6\xc9u\x0f](\t$\xd4'

se faccio

print serie

ottengo (circa..)

R���u]($�

come faccio invece ad ottenere proprio questo

b'R\xa0\xb6\xc9u\x0f](\t$\xd4'

detto in altre parole come faccio a stampare la rappresentazione ( =il
significante) del byte invece che il suo significato?

 ho provato in molti modi ma non ci sono riuscito

sono solo riuscito ad ottenere una lista

print map(None,serie)

ma non mi va bene.  

-- 
Filippo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Carlos Catucci
2015-02-25 17:24 GMT+01:00 Daniele Zambelli daniele.zambe...@gmail.com:

 Comunque da me funziona.


Quanta RAM hai? No perche' mi dcievano che la NASA usa Python, si sa mai
che tu lavori li. Oppure alla ILM ;)

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Carlos Catucci
Comunque scrivendo

for row in itertools.product(*liste):

qry = INSERT INTO importdata_combinazioni (paragraph_id, parent_id,
combinazione) VALUES (%s, %s, '%s'); % (old_para, old_parent,
list(row))

sembra che per ora tenga botta, vi so dire (domani?) se ci arriva in fodno.
Meno male che non e' un lavoro da eseguire spesso.


Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Nicola Larosa
 Carlos Catucci wrote:
 qry = INSERT INTO importdata_combinazioni (paragraph_id,
 parent_id, combinazione) VALUES (%s, %s, '%s'); % (old_para,
 old_parent, list(row))

Carlo Miron wrote:
 Bobby Tables.
 
 ©

Per la precisione:

Robert'); DROP TABLE students;--, nicknamed Little Bobby Tables

http://www.explainxkcd.com/wiki/index.php/Little_Bobby_Tables

-- 
Nicola 'tekNico' Larosa http://www.tekNico.net/

Having a female-typical corpus callosum isn't a bug, it's a feature.
 - Eric Raymond, August 2013
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Carlos Catucci
On 25 February 2015 at 18:38, Nicola Larosa n...@teknico.net wrote:

 Robert'); DROP TABLE students;--, nicknamed Little Bobby Tables


Non si finisce davvero mai di apprendere. Per fortuna. Fino a che si impara
si e' vivi e pensanti

Muchas gracias

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] byte e python 2.7.9

2015-02-25 Per discussione orciml

On 25/02/2015 18:59, Massimiliano della Rovere wrote:


Ora non ho modo di provarlo ma credo che struct.unpack(c, serie) 
possa essere utile.


https://docs.python.org/2/library/struct.html


Il giorno mer 25 feb 2015 18:41 Filippo Dal Bosco - 
filippo.dalbo...@whiteready.com 
mailto:filippo.dalbo...@whiteready.com ha scritto:


python 2.7.9

Data una serie di bytes tipo questa:

serie= b'R\xa0\xb6\xc9u\x0f](\t$\xd4'

se faccio

print serie

ottengo (circa..)

R���u ]($�

come faccio invece ad ottenere proprio questo

b'R\xa0\xb6\xc9u\x0f](\t$\xd4'



print [chr(ord(c)) for c in serie]

Ciao Loris

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] byte e python 2.7.9

2015-02-25 Per discussione Manlio Perillo
2015-02-25 18:41 GMT+01:00 Filippo Dal Bosco - 
filippo.dalbo...@whiteready.com:

 python 2.7.9

 Data una serie di bytes tipo questa:

 serie= b'R\xa0\xb6\xc9u\x0f](\t$\xd4'

 se faccio

 print serie

 ottengo (circa..)

 R���u ]($�

 come faccio invece ad ottenere proprio questo

 b'R\xa0\xb6\xc9u\x0f](\t$\xd4'


In python3 fa la cosa giusta.


 detto in altre parole come faccio a stampare la rappresentazione ( =il
 significante) del byte invece che il suo significato?


print repr(serie)


Ciao  Manlio
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] byte e python 2.7.9

2015-02-25 Per discussione orciml

On 25/02/2015 18:59, Massimiliano della Rovere wrote:


Ora non ho modo di provarlo ma credo che struct.unpack(c, serie) 
possa essere utile.


https://docs.python.org/2/library/struct.html


Il giorno mer 25 feb 2015 18:41 Filippo Dal Bosco - 
filippo.dalbo...@whiteready.com 
mailto:filippo.dalbo...@whiteready.com ha scritto:


python 2.7.9

Data una serie di bytes tipo questa:

serie= b'R\xa0\xb6\xc9u\x0f](\t$\xd4'

se faccio

print serie

ottengo (circa..)

R���u ]($�

come faccio invece ad ottenere proprio questo

b'R\xa0\xb6\xc9u\x0f](\t$\xd4'



print [chr(ord(c)) for c in serie]

azz, non avevo capito!

si anche in python 2.7.6 si puo' fare:

print repr(serie)

Ciao Loris

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] itertools.product e segmentaton fault

2015-02-25 Per discussione Marco Beri
On Feb 25, 2015 8:10 PM, Carlos Catucci carlos.catu...@gmail.com wrote:


 On 25 February 2015 at 18:38, Nicola Larosa n...@teknico.net wrote:

 Robert'); DROP TABLE students;--, nicknamed Little Bobby Tables


 Non si finisce davvero mai di apprendere. Per fortuna. Fino a che si
impara si e' vivi e pensanti

 Muchas gracias

Ah, per chi non conosce:

http://xkcd.com/327/

Ciao.
Marco.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python