Append a tuple to a list – what's the difference between two ways?

Question:

I wrote my first “Hello World” 4 months ago. Since then, I have been following a Coursera Python course provided by Rice University. I recently worked on a mini-project involving tuples and lists. There is something strange about adding a tuple into a list for me:

a_list = []
a_list.append((1, 2))       # Succeed! Tuple (1, 2) is appended to a_list
a_list.append(tuple(3, 4))  # Error message: ValueError: expecting Array or iterable

It’s quite confusing for me. Why specifying the tuple to be appended by using “tuple(…)” instead of simple “(…)” will cause a ValueError?

BTW: I used CodeSkulptor coding tool used in the course

Asked By: Skywalker326

||

Answers:

There should be no difference, but your tuple method is wrong, try:

a_list.append(tuple([3, 4]))
Answered By: 101

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

Answered By: Bhargav Rao

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.

Answered By: BrenBarn

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

Answered By: brainless coder

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

Answered By: Ashwin Reddy
Categories: questions Tags: , , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.