2011-08-14 73 views
11

我想知道如何把一个元组放入数组?或者更好地使用数组中的数组来设计程序而不是数组中的元组? 请指教我。谢谢我可以把一个元组放入python数组中吗?

+3

你的意思是让元组的数组?或者将一个元组*变成一个数组? – Nate

+5

你的意思是'列表'在一个实际的'数组'? –

+0

我只是想像文本和ID值存储到元组或列表,但我想检查它与另一个循环。而不是在for循环中使用for循环。我想在数组中使用数组。但是,我是否应该在列表中使用元组,还是使用列表中的列表,我感到非常困惑。我不擅长设计设计结构,所以我要求提供建议和意见 – iCezz

回答

14

有一点要记住的是tuple是不可变的。这意味着一旦它被创建,你就不能在原地进行修改。另一方面,另一方面,list是可变的 - 意味着您可以添加元素,移除元素并在原地更改元素。一个列表有额外的开销,所以如果你需要修改这些值,只能使用一个列表。

您可以创建一个元组列表:

>>> list_of_tuples = [(1,2),(3,4)] 
>>> list_of_tuples 
[(1, 2), (3, 4)] 

或列表的列表:

>>> list_of_lists = [[1, 2], [3, 4]] 
>>> list_of_lists 
[[1, 2], [3, 4]] 

不同的是,你可以修改的元素列表清单:

>>> list_of_lists[0][0] = 7 
>>> list_of_lists 
[[7, 2], [3, 4]] 

但不包含元组列表:

>>> list_of_tuples[0][0] = 7 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: 'tuple' object does not support item assignment 

遍历元组的列表:

>>> for (x,y) in list_of_tuples: 
... print x,y 
... 
1 2 
3 4 
+0

我只是想将文本和ID等值存储到元组或列表中,但我想用另一个for循环来检查它。而不是在for循环中使用for循环。我想在数组中使用数组。但是,我是否应该在列表中使用元组,还是使用列表中的列表,我感到非常困惑。我不是很擅长设计设计结构,因此我在征求意见和建议 – iCezz

+0

@iCezz我添加了一个例子,说明如何轻松遍历不带多个for循环的元组列表。 – jterrace

+0

我认为这是一个好主意,在这种情况下,我可以方便快捷地检索元组内的值,而不用担心数据会被更改。再次感谢 – iCezz

6

如果你在谈论list,你可以把任何东西进去,甚至是不同的类型:

l=[10,(10,11,12),20,"test"] 

l[0] = (1,2,3) 
l.append((4,5)) 
l.extend((21,22)) #this one adds each element from the tuple 

,如果你的意思是array,没有蟒蛇array■不要支持元组。

+0

谢谢你的建议。这就是我所说的数组中的元组。基本上它将许多元组存储在一个列表中。但我认为元组没有方法,因此我相信它会添加到列表中。感谢分享 – iCezz

1
a = [ ('b', i , "ff") for i in range(1,5)] 
相关问题