What's the difference between () vs [] vs {}?

Question:

What’s the difference between () vs [] vs {} in Python?
They’re collections? How can I tell when to use which?

Asked By: Zolomon

||

Answers:

  • () is a tuple: An immutable collection of values, usually (but not necessarily) of different types.
  • [] is a list: A mutable collection of values, usually (but not necessarily) of the same type.
  • {} is a dict: Use a dictionary for key value pairs.

For the difference between lists and tuples see here. See also:

Answered By: Mark Byers

() – tuple

A tuple is a sequence of items that can’t be changed (immutable).

[] – list

A list is a sequence of items that can be changed (mutable).

{} – dictionary or set

A dictionary is a list of key-value pairs, with unique keys (mutable). From Python 2.7/3.1, {} can also represent a set of unique values (mutable).

Answered By: Greg Hewgill
() - tuple
[] - list
{} - dictionary

All Python tutorials should cover this. Here is a good place to start.

Answered By: user225312

In addition to the tuple, list and dict given by the other answers, {} also denotes a set literal in python 2.7 and python 3.1. (This makes sense because set elements act like the keys of a dict).

Answered By: Andrew Jaffe

To complete the other answers about {}:

If you see a = {"key1": 1, "key2": 2, "key3": 3} (keys and values), then it’s a dict.

If you see a = {1, 2, 3} (values only), then it’s a set.

If you see a = {} (empty), then it’s a dict. An empty set is created with a = set().

Quoting the official doc:

5.4. Sets

Python also includes a data type for sets. A set is an unordered collection with no duplicate elements. Basic uses include membership testing and eliminating duplicate entries. Set objects also support mathematical operations like union, intersection, difference, and symmetric difference.

Curly braces or the set() function can be used to create sets. Note: to create an empty set you have to use set(), not {}; the latter creates an empty dictionary, a data structure that we discuss in the next section.

Answered By: GG.