J'ai écrit mon premier "Hello World" il y a 4 mois. Depuis lors, je suis un cours Coursera Python dispensé par l’Université Rice. J’ai récemment travaillé sur un mini-projet comprenant des tuples et des listes. Il est étrange d’ajouter un Tuple à une liste moi:
a_list = []
a_list.append((1, 2)) # Succeed! Tuple (1, 2) is appended to a_list
a_list.append(Tuple(3, 4)) # Error message: ValueError: expecting Array or iterable
C'est assez déroutant pour moi. Pourquoi spécifier le tuple à ajouter en utilisant "Tuple (...)" au lieu de simple "(...)" provoquera un ValueError
?
BTW: J'ai utilisé CodeSkulptor
outil de codage utilisé dans le cours
La fonction Tuple
ne prend qu'un seul argument qui doit être un itératif
Tuple([iterable])
Renvoie un tuple dont les éléments sont identiques et dans le même ordre que les éléments iterable.
Essayez de faire 3,4
un itérable en utilisant [3,4]
(une liste) ou (3,4)
(un tuple)
Par exemple
a_list.append(Tuple((3, 4)))
marchera
Parce que Tuple(3, 4)
n'est pas la syntaxe correcte pour créer un tuple. La syntaxe correcte est -
Tuple([3, 4])
ou
(3, 4)
Vous pouvez le voir à partir d'ici - https://docs.python.org/2/library/functions.html#Tuple
Il devrait y avoir aucune différence, mais votre méthode Tuple est fausse, essayez:
a_list.append(Tuple([3, 4]))
Cela n'a rien à voir avec append
. Tuple(3, 4)
tout seul soulève cette erreur.
La raison en est que, comme le message d'erreur le dit, Tuple
attend un argument itérable. Vous pouvez créer un tuple de l'objet conten d'un objet nique en transmettant cet objet unique à Tuple. Vous ne pouvez pas créer un tuple de deux choses en les passant comme arguments séparés.
Il suffit de faire (3, 4)
pour faire un tuple, comme dans votre premier exemple. Il n'y a aucune raison de ne pas utiliser cette syntaxe simple pour écrire un tuple.
Je crois que Tuple()
prend une liste comme argument. Par exemple,
Tuple([1,2,3]) # returns (1,2,3)
voyez ce qui se passe si vous enroulez votre tableau avec des crochets