ajouter vs mise à jour dans l'ensemble des opérations en python

Quelle est la différence entre les ajouter et les opérations de mise à jour en python si je veux juste ajouter une valeur unique à l'ensemble.

a = set()
a.update([1]) #works
a.add(1) #works
a.update([1,2])#works
a.add([1,2])#fails 

Quelqu'un peut m'expliquer pourquoi est-ce si.

  • Quelle est la version de Python que vous utilisez? Pour a.update(1) j'attends TypeError: 'int' object is not iterable, et il a obtenu pour les deux versions, j'ai essayé.
  • votre modifier changé la question tout à fait un peu
  • github.com/python/cpython/blob/master/Objects/setobject.c
  • L'OP a mentionné que #fails et #works. J'ai juste compris le réel les messages d'erreur. Espérons que c'est très bien.
  • à l'origine, l'OP a dit a.update(1) travaillé
  • Nous savons tous les deux que ça ne marchera pas. Pouvons-nous accepter que c'est juste un copier/coller de l'erreur? Si non, n'hésitez pas à revenir ma version 🙂
  • eh bien, je pense que si il y avait un copier coller de l'erreur, il aurait été a.update(1) était censé être a.update([1]) qui aurait plus de sens.
  • oui, c'était un copier coller d'erreur sur ma fin
  • Là.. je annuler les changements. J'ai vraiment pensé qu'elle aurait plus de sens pour les lecteurs si ils ont vu les messages d'erreur.
  • Pourriez-vous revenir à l'annulation de la pls. C'était un copier coller d'erreur sur ma fin.
  • vous pouvez modifier à votre question. Est-il censé être update([1]) ou update(1)# fails?
  • J'ai présumé qu'elle était peut-être censé avoir été update([1]) qui veut dire que vous pouvez ajouter un élément unique avec mise à jour, mais ne pas ajouter de multiples éléments à ajouter.
  • Ah ouais... ça fait plus de sens.

InformationsquelleAutor aceminer | 2015-03-04