1
Dictionaries store data in key-value pairs using curly brackets {}, unlike lists and tuples which use square brackets and indices.
2
Keys must be unique and of an immutable type (such as strings or numbers), while values can be duplicated and of any type.
3
Values can be retrieved using square bracket notation (data[key]) or the get() method (data.get(key)), where get() returns None instead of raising an error if the key is missing.
4
You can provide a default fallback string to the get() method, e.g., data.get(3, 'not found').
5
Two separate lists can be combined into a dictionary using the zip() function wrapped in the dict() constructor: dict(zip(keys, values)).
6
New key-value pairs can be added dynamically by assignment (e.g., data['Monica'] = 'C sharp'), and elements can be removed using the del keyword (e.g., del data['Harsh']).
7
Dictionaries support advanced nesting, allowing you to store lists or other dictionaries as values to represent complex, multi-level hierarchical data.