Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermé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 : 16 907
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
Pages : 1
Discussion fermée