Different meanings of brackets in Python
Different meanings of brackets in Python
[]
: Lists and indexing/lookup/slicing
- Lists:
[]
,[1, 2, 3]
,[i**2 for i in range(5)]
- Indexing:
abc[0]
→a
- Lookup:
{0: 10}[0]
→10
- Slicing:
abc[:2]
→ab
()
: Tuples, order of operations, generator expressions, function calls and other syntax.
- Tuples:
()
,(1, 2, 3)
- Although tuples can be created without parentheses:
t = 1, 2
→(1, 2)
- Although tuples can be created without parentheses:
- Order of operations:
(n-1)**2
- Generator expression:
(i**2 for i in range(5))
- Function or method calls:
print()
,int()
,range(5)
,1 2.split( )
- with a generator expression:
sum(i**2 for i in range(5))
- with a generator expression:
{}
: Dictionaries and sets, as well as string formatting
- Dicts:
{}
,{0: 10}
,{i: i**2 for i in range(5)}
- Sets:
{0}
,{i**2 for i in range(5)}
- Inside f-strings and format strings, to indicate replacement fields:
f{foobar}
and{}.format(foobar)
All of these brackets are also used in regex. Basically, []
are used for character classes, ()
for grouping, and {}
for repetition. For details, see The Regular Expressions FAQ.
() parentheses are used for order of operations, or order of evaluation, and are referred to as tuples.
[] brackets are used for lists. List contents can be changed, unlike tuple content.
{} are used to define a dictionary in a list called a literal.
Different meanings of brackets in Python
In addition to Maltysens answer and for future readers: you can define the ()
and []
operators in a class, by defining the methods:
__call__(self[, args...])
for()
__getitem__(self, key)
for[]
An example is numpy.mgrid[...]
. In this way you can define it on your custom-made objects for any purpose you like.