Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 10-12-2018 16:25:21

doro
Invité

python itération

Bien le Bonsoir
Je souhaite convertir de nombreuse liste de tuple en liste de nombre, mais j'utilise la fonction itertools, pour créer l'ensemble des couples de tuples possible pour une action donnée, ce qui peut très vite atteindre de grand chiffre, je voulais donc savoir si l'un de vous aurez une idée qui me permettrai de me faciliter la tache ?
J'ai passé une bonne journée la dessus sans trouver de solution.
Je vous partage mon code et le message d'erreur
merci d'avance


l=[1,2,3,4]
for p in itertools.chain(*(itertools.combinations(l,long)for long in range(1,30))) :
   
    print(p)
    print(type(p))
    nouvelle_liste= []
    for item in p :
        a,b,c,d = item
        nouvelle_liste.append((int(a),int(b),int(c),int(d)))
        print(nouvelle_liste)
    #bonsoir=list(p)
#sum(bonsoir)
#print(bonsoir)

TypeError: cannot unpack non-iterable int object

#2 11-12-2018 11:18:28

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 15 086

Re : python itération

Salut,

Le code présenté ne peut fonctionner : il manque l'import.
Le message d'erreur est incomplet donc, très vague...
Le voilà dans son intégralité + la sortie qui précède...

+(1,)
<class 'tuple'>

Traceback (most recent call last):
  File "C:/Python35/Doro Itertools.py", line 10, in <module>
    a,b,c,d = item
TypeError: 'int' object is not iterable


Alors j'ai voulu voir ce que cachait exactement item :
>>> print (item)
1
>>> type(item)
<class 'int'>
puis p :
>>> p
(1,)

alors comment veux-tu que a,b,c,d = item fonctionne ?
Tu reçois un message d'erreur, c'est normal.
Donc, erreur de conception en amont, : avec ça, on devrait pouvoir corriger...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Pied de page des forums