383 votes

Ajouter des variables au tuple

Je suis en train d'apprendre le langage Python et la création d'une connexion de base de données. Tout en essayant d'ajouter à la DB, je pense à la création de n-uplets de l'information, puis les ajouter à la DB.

Ce que je Fais: Je prends les informations de l'utilisateur et de les stocker dans des variables. Puis-je ajouter ces variables dans un tuple? Pouvez vous s'il vous plaît m'aider avec la syntaxe?

Aussi, si il ya un moyen efficace de le faire, s'il vous plaît partager...

MODIFIER Permettez-moi de modifier cette question un peu...j'ai seulement besoin de le tuple pour entrer des informations dans la base. Une fois que l'information est ajoutée à la DB, dois-je supprimer le tuple? Je veux dire que je n'ai pas besoin du n-uplet plus.

509voto

John Millikin Points 86775

Les tuples sont immuables; vous ne pouvez pas modifier les variables qu'ils contiennent après la construction. Cependant, vous pouvez les concaténer ou les découper en tranches pour former de nouveaux tuples:

 a = (1, 2, 3)
b = a + (4, 5, 6)
c = b[1:]
 

Et bien sûr, construisez-les à partir des valeurs existantes:

    name = "Joe"
   age = 40
   location = "New York"
   joe = (name, age, location)
 

276voto

Daniel Points 680

Vous pouvez commencer avec un tuple vide avec quelque chose comme t = (). Vous pouvez ajouter avec +, mais vous devez ajouter un autre tuple. Si vous voulez ajouter un seul élément, faites-en un singleton: t = t + (element,). Vous pouvez ajouter un tuple de plusieurs éléments avec ou sans cette virgule finale.

 >>> t = ()
>>> t = t + (1,)
>>> t
(1,)
>>> t = t + (2,)
>>> t
(1, 2)
>>> t = t + (3, 4, 5)
>>> t
(1, 2, 3, 4, 5)
>>> t = t + (6, 7, 8,)
>>> t
(1, 2, 3, 4, 5, 6, 7, 8)
 

52voto

ehontz Points 46

Une autre tactique non encore mentionnée consiste à ajouter une liste à une liste, puis à convertir la liste en tuple à la fin:

 mylist = []
for x in range(5):
    mylist.append(x)
mytuple = tuple(mylist)
print mytuple
 

résultats

 (0, 1, 2, 3, 4)
 

Je l'utilise parfois quand je dois passer un tuple comme argument de fonction, ce qui est souvent nécessaire pour les fonctions numpy.

10voto

mipadi Points 135410

C'est aussi simple que les suivants:

 info_1 = "one piece of info"
info_2 = "another piece"
vars = (info_1, info_2)
# 'vars' is now a tuple with the values ("info_1", "info_2")
 

Cependant, les tuples en Python sont immuables , vous ne pouvez donc pas ajouter de variables à un tuple une fois créé.

4voto

Alex Martelli Points 330805

Comme d'autres réponses ont noté, vous ne pouvez pas changer un tuple, mais vous pouvez toujours créer un nouveau tuple (qui peut prendre certains ou de tous les éléments de tuples existants et/ou d'autres sources).

Par exemple, si tous les éléments d'intérêt sont variables scalaires et vous connaissez les noms de ces variables:

def maketuple(variables, names):
  return tuple(variables[n] for n in names)

pour être utilisé, e.g, comme dans cet exemple:

def example():
  x = 23
  y = 45
  z = 67
  return maketuple(vars(), 'x y z'.split())

bien sûr, ce cas serait plus simplement exprimé en (x, y, z) (ou même qui précède les noms au total, (23, 45, 67)), mais l' maketuple approche pourrait être utile dans certains des cas les plus complexes (par exemple, où les noms à utiliser sont également déterminés de manière dynamique et ajouté à une liste lors du calcul).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X