2010-08-19 54 views
33

我的元组的下列元组的元组:另一元组添加到元组

my_choices=(
     ('1','first choice'), 
     ('2','second choice'), 
     ('3','third choice') 
) 

,我想另一个多元组添加到它

another_choice = ('0', 'zero choice') 

我怎样才能做到这一点开始?

的结果将是:

final_choices=(
      ('0', 'zero choice') 
      ('1','first choice'), 
      ('2','second choice'), 
      ('3','third choice') 
    ) 
+4

这是一个元组的元组,而不是一个元组列表。 – 2010-08-19 15:02:15

回答

36

建一个元组的元组出another_choice,然后拼接:

final_choices = (another_choice,) + my_choices 

或者,考虑做my_choices一个列表的元组,而不是一个元组的元组用方括号代替括号:

my_choices=[ 
    ('1','first choice'), 
    ('2','second choice'), 
    ('3','third choice') 
] 

然后,你可以简单地做:

my_choices.insert(0, another_choice) 
0

你有什么是元组的元组,而不是一个元组列表。元组是只读的。改为从列表开始。

>>> 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)插入提供索引处的OBJ名单内...让你推任意对象列表中的任何位置。

11

不要转换为列表并返回,这是不必要的开销。 +连接元组。

>>> foo = ((1,),(2,),(3,)) 
>>> foo = ((0,),) + foo 
>>> foo 
((0,), (1,), (2,), (3,)) 
+0

我以为你不能改变元组? – Douglas 2017-12-23 17:27:37

+0

你不能---但你可以重新定义它们:) – katrielalex 2017-12-31 17:44:20

3

或者,使用元组拼接


final_choices = (another_choice,) + my_choices