iCezz
iCezz

Reputation: 634

Can I put a tuple into an array in python?

I am wondering how to put a tuple into an array? or is it better to use arrays in array for the design of the program rather than a tuple in an array? please advice me. thank you

Upvotes: 27

Views: 141796

Answers (3)

pkushiqiang
pkushiqiang

Reputation: 19

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

Upvotes: 1

jterrace
jterrace

Reputation: 67123

One thing to keep in mind is that a tuple is immutable. This means that once it's created, you can't modify it in-place. A list, on the other hand, is mutable -- meaning you can add elements, remove elements, and change elements in-place. A list has extra overhead, so only use a list if you need to modify the values.

You can create a list of tuples:

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

or a list of lists:

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

The difference is that you can modify the elements in the list of lists:

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

but not with the list of tuples:

>>> 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

To iterate over a list of tuples:

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

Upvotes: 42

Karoly Horvath
Karoly Horvath

Reputation: 96286

if you are talking about list, you can put anything into it, even different types:

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

if you mean array, no python arrays don't support tuples.

Upvotes: 10

Related Questions