What do the 3 different brackets mean in Python programming?
[]- Normally used for dictionaries, list items()- Used to identify parameters{}- I don't know what this does
Can these brackets can be used for other purposes?
[]Lists and indexing/lookup/slicing
[], [1, 2, 3], [i**2 for i in range(5)]'abc'[0] → 'a'{0: 10}[0] → 10'abc'[:2] → 'ab'() (AKA "round brackets")Tuples, order of operations, generator expressions, function calls and other syntax.
(), (1, 2, 3) t = 1, 2 → (1, 2)(n-1)**2(i**2 for i in range(5))print(), int(), range(5), '1 2'.split(' ') sum(i**2 for i in range(5)){}Dictionaries and sets, as well as in string formatting
{}, {0: 10}, {i: i**2 for i in range(5)}{0}, {i**2 for i in range(5)} set()f'{foobar}''{}'.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.
<>Used when representing certain objects like functions, classes, and class instances if the class doesn't override __repr__(), for example:
>>> print <built-in function print> >>> zip <class 'zip'> >>> zip() <zip object at 0x7f95df5a7340> (Note that these aren't proper Unicode angle brackets, like ⟨⟩, but repurposed less-than and greater-than signs.)
In addition to Maltysen's 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.
() 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.
print()), and tuples can be defined without parentheses (e.g. t = 1, 2).