A dictionary in Python is an unordered collection of key-value pairs where keys must be unique and immutable. It allows storing and accessing data values using keys. Keys can be of any immutable data type while values can be of any data type. Dictionaries can be created using curly braces {} or the dict() constructor and elements can be added, accessed, updated, or removed using keys. Common dictionary methods include copy(), clear(), pop(), get(), keys(), items(), and update().