J'ai le tuple de tuples suivant:
my_choices=(
('1','first choice'),
('2','second choice'),
('3','third choice')
)
et je veux ajouter un autre tuple au début
another_choice = ('0', 'zero choice')
Comment puis-je faire ceci?
le résultat serait:
final_choices=(
('0', 'zero choice')
('1','first choice'),
('2','second choice'),
('3','third choice')
)
Créez un autre tuple de tuples à partir de another_choice
, puis concaténer:
final_choices = (another_choice,) + my_choices
Vous pouvez également envisager de faire my_choices
une liste de tuples au lieu d'un Tuple-de-tuples en utilisant des crochets au lieu de parenthèses:
my_choices=[
('1','first choice'),
('2','second choice'),
('3','third choice')
]
Ensuite, vous pouvez simplement faire:
my_choices.insert(0, another_choice)
Ne vous convertissez pas en liste et inversement, c'est une surcharge inutile. +
concatène les tuples.
>>> foo = ((1,),(2,),(3,))
>>> foo = ((0,),) + foo
>>> foo
((0,), (1,), (2,), (3,))
Vous pouvez également utiliser la concaténation Tuple
c'est à dire.
final_choices = (another_choice,) + my_choices
Ce que vous avez est un Tuple de tuples, pas une liste de tuples. Les tuples sont en lecture seule. Commencez par une liste à la place.
>>> my_choices=[
... ('1','first choice'),
... ('2','second choice'),
... ('3','third choice')
... ]
>>> my_choices.insert(0,(0,"another choice"))
>>> my_choices
[(0, 'another choice'), ('1', 'first choice'), ('2', 'second choice'), ('3', 'third choice')]
list.insert (ind, obj) insère obj à l'index fourni dans une liste ... vous permettant de pousser n'importe quel objet arbitraire à n'importe quelle position dans la liste.