A dictionary is an unordered collection of key-value pairs where keys must be unique but values can change. Dictionaries are optimized to retrieve values quickly when the key is known. They are represented using curly braces with key-value pairs separated by commas. Dictionaries can be created using the built-in dict() function or by direct assignment and allow mutable values. Keys must be an immutable data type and dictionaries themselves are mutable.