Append a tuple to a list - what's the difference between two ways?
The tuple
function takes only one argument which has to be an iterable
tuple([iterable])
Return a tuple whose items are the same and in the same order as iterable‘s items.
Try making 3,4
an iterable by either using [3,4]
(a list) or (3,4)
(a tuple)
For example
a_list.append(tuple((3, 4)))
will work
Because tuple(3, 4)
is not the correct syntax to create a tuple. The correct syntax is -
tuple([3, 4])
or
(3, 4)
You can see it from here - https://docs.python.org/2/library/functions.html#tuple
I believe tuple()
takes a list as an argument
For example,
tuple([1,2,3]) # returns (1,2,3)
see what happens if you wrap your array with brackets
There should be no difference, but your tuple method is wrong, try:
a_list.append(tuple([3, 4]))
It has nothing to do with append
. tuple(3, 4)
all by itself raises that error.
The reason is that, as the error message says, tuple
expects an iterable argument. You can make a tuple of the contents of a single object by passing that single object to tuple. You can't make a tuple of two things by passing them as separate arguments.
Just do (3, 4)
to make a tuple, as in your first example. There's no reason not to use that simple syntax for writing a tuple.