O'Reilly logo

Think Julia by Allen B. Downey, Ben Lauwens

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 11. Dictionaries

This chapter presents another built-in type called a dictionary.

A Dictionary Is a Mapping

A dictionary is like an array, but more general. In an array, the indices have to be integers; in a dictionary they can be (almost) any type.

A dictionary contains a collection of indices, which are called keys, and a collection of values. Each key is associated with a single value. The association of a key and a value is called a key-value pair, or sometimes an item.

In mathematical language, a dictionary represents a mapping from keys to values, so you can also say that each key “maps to” a value. As an example, we’ll build a dictionary that maps from English to Spanish words, so the keys and the values are all strings.

The function Dict creates a new dictionary with no items (because Dict is the name of a built-in function, you should avoid using it as a variable name):

julia> eng2sp = Dict()
Dict{Any,Any} with 0 entries

The types of the keys and values in the dictionary are specified in curly braces: here, both are of type Any.

The dictionary is empty. To add items to the dictionary, you can use square brackets:

julia> eng2sp["one"] = "uno";

This line creates an item that maps from the key "one" to the value "uno". If we print the dictionary again, we see a key-value pair with an arrow => between the key and value:

julia> eng2sp
Dict{Any,Any} with 1 entry:
  "one" => "uno"

This output format is also an input format. For example, you can create a new dictionary ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required