-2
votes

Python: Ajouter () dans le problème zip (). L'objet 'zip' n'a pas d'attribut 'ANNEX'

J'espère que vos jours vont bien :)

J'apprends Python récemment avec le site de la Code Academy, et ils m'ont donné un exemple sur zip () code> et annexe () code>. p> xxx pré>

C'est le code que j'ai fait mais cela me donne une erreur. P>

Traceback (most recent call last):
  File "script.py", line 9, in <module>
    gradebook.append(("visual arts", 93))
AttributeError: 'zip' object has no attribute 'append'


2 commentaires

Apprenez à Rechercher des messages d'erreur . Premiers résultats sur Google .. Quoi qu'il en soit, cela concerne les différences de Python 2 contre 3. Zip utilisé pour renvoyer une liste et maintenant, il ne le fait pas. APPEND est membre d'une liste. Donc, le résultat de zip peut être converti en une liste pour correspondre au comportement Python 2, comme dans la liste (Zip (.)), Ou une méthode différente ou une concaténation peut être utilisée.


Je pense que vous devriez signaler cet exemple à Code Academy. On dirait qu'un effort a été fait pour le porter de Python 2 à 3, mais le portage n'est pas complet.


4 Réponses :


1
votes

Parce que GradeBook code> est un objet zip code>. Vous devrez peut-être utiliser

gradebook = list(zip(subjects, grades))


1 commentaires

Merci pour votre gentillesse et votre réponse rapide :)



1
votes

Le problème est que zip est un itérateur, pas une séquence. Je soupçonne que vous avez un code ancien ou non testé, non compatible avec la version actuelle Python. Vous ZIP Résultat est utilisable comme cible d'une instruction pour , mais n'a aucun APPEND Attribut - c'est un type de fonction spécial.

La conversion est suffisamment facile: faites une liste d'entre eux plus tôt: xxx


1 commentaires

Merci, tu as eu le point. J'ai appris Python2 d'abord et apprendre 3 maintenant. Je pense que c'est la raison pour laquelle j'ai écrit comme ça. Merci encore. Je vais accepter votre réponse lorsque la limite de temps est éteinte



2
votes

Vous devez changer zip vers la liste: xxx


1 commentaires

Merci pour votre aide :) Passez une merveilleuse journée!



1
votes

ici "GradeBook = zip (sujets, grades)" Vous créez une instance zip mais afin d'appliquer quelque chose, vous devez en faire une liste à l'aide de la fonction de liste comme celle-ci. GradeBook = liste (zip (sujets, grades))


1 commentaires

Merci de votre réponse :) J'espère que vous avez une journée parfaite :)