Bird
Raised Fist0
Swiftprogramming~5 mins

Dictionary creation and access in Swift

Choose your learning style10 modes available
Introduction

Dictionaries help you store pairs of related information, like names and phone numbers. You can quickly find a value by using its key.

When you want to store a list of items with labels, like a phone book.
When you need to look up information fast using a unique key.
When you want to group related data together, like a person's details.
When you want to update or add new information easily by key.
Syntax
Swift
var dictionaryName: [KeyType: ValueType] = [key1: value1, key2: value2]

// Access value by key
let value = dictionaryName[key]

Keys must be unique and hashable (like strings or numbers).

Accessing a key returns an optional value because the key might not exist.

Examples
This creates a dictionary with names as keys and ages as values. Then it gets Alice's age.
Swift
var ages: [String: Int] = ["Alice": 30, "Bob": 25]
let aliceAge = ages["Alice"]
Swift can infer the types. This dictionary stores countries and their capitals.
Swift
var capitals = ["France": "Paris", "Japan": "Tokyo"]
let capitalOfJapan = capitals["Japan"]
This creates an empty dictionary and adds a key-value pair later.
Swift
var emptyDict = [String: String]()
emptyDict["key"] = "value"
Sample Program

This program creates a dictionary of fruits and their colors. It safely accesses the color of Apple and Orange, showing how to handle missing keys.

Swift
import Foundation

var fruitsColors: [String: String] = ["Apple": "Red", "Banana": "Yellow", "Grape": "Purple"]

if let appleColor = fruitsColors["Apple"] {
    print("The color of Apple is \(appleColor).")
} else {
    print("Apple color not found.")
}

// Trying to access a key that does not exist
if let orangeColor = fruitsColors["Orange"] {
    print("The color of Orange is \(orangeColor).")
} else {
    print("Orange color not found.")
}
OutputSuccess
Important Notes

Always use optional binding (if let) when accessing dictionary values to avoid errors if the key is missing.

You can add or update values by assigning to a key, like dict["newKey"] = newValue.

Dictionaries do not keep order, so the order of items is not guaranteed.

Summary

Dictionaries store data in key-value pairs for quick lookup.

Use square brackets with a key to get or set values.

Accessing a key returns an optional, so handle missing keys safely.

Practice

(1/5)
1. What is a dictionary in Swift used for?
easy
A. To store data in key-value pairs for quick lookup
B. To store a list of values without keys
C. To perform mathematical calculations
D. To create user interface elements

Solution

  1. Step 1: Understand dictionary purpose

    Dictionaries store data as pairs of keys and values, allowing fast access by key.
  2. Step 2: Compare options

    Only To store data in key-value pairs for quick lookup correctly describes this key-value storage purpose.
  3. Final Answer:

    To store data in key-value pairs for quick lookup -> Option A
  4. Quick Check:

    Dictionaries = key-value storage [OK]
Hint: Remember: dictionaries pair keys with values for fast access [OK]
Common Mistakes:
  • Confusing dictionaries with arrays (which have no keys)
  • Thinking dictionaries perform calculations
  • Assuming dictionaries create UI elements
2. Which of the following is the correct way to create a dictionary in Swift?
easy
A. let dict = ("apple", 1), ("banana", 2)
B. let dict = ["apple": 1, "banana": 2]
C. let dict = {"apple": 1, "banana": 2}
D. let dict = ["apple", 1, "banana", 2]

Solution

  1. Step 1: Identify Swift dictionary syntax

    Swift dictionaries use square brackets with key-value pairs separated by colons.
  2. Step 2: Check each option

    let dict = ["apple": 1, "banana": 2] uses correct syntax: ["key": value, ...]. Others use tuples, braces, or arrays incorrectly.
  3. Final Answer:

    let dict = ["apple": 1, "banana": 2] -> Option B
  4. Quick Check:

    Dictionary syntax = [key: value] [OK]
Hint: Use square brackets with colons for key-value pairs [OK]
Common Mistakes:
  • Using parentheses instead of square brackets
  • Using curly braces which define closures
  • Listing keys and values without colons
3. What will be the output of this Swift code?
let fruits = ["apple": 3, "banana": 5]
print(fruits["banana"] ?? 0)
medium
A. 5
B. nil
C. banana
D. 0

Solution

  1. Step 1: Access dictionary value by key

    fruits["banana"] looks up the value for key "banana", which is 5.
  2. Step 2: Use nil-coalescing operator

    The ?? 0 means if the key is missing (nil), print 0; here key exists, so print 5.
  3. Final Answer:

    5 -> Option A
  4. Quick Check:

    fruits["banana"] = 5 [OK]
Hint: Use ?? to provide default if key missing [OK]
Common Mistakes:
  • Expecting nil instead of default value
  • Printing the key instead of the value
  • Confusing optional with direct value
4. Identify the error in this Swift code snippet:
var scores = ["Alice": 90, "Bob": 85]
scores["Charlie"] = 95
print(scores["Charlie"])
medium
A. Cannot add new key-value pairs to a dictionary
B. Dictionary keys must be integers
C. Syntax error in dictionary declaration
D. Missing unwrap of optional when printing

Solution

  1. Step 1: Check dictionary modification

    Adding a new key-value pair to a var dictionary is allowed, so no error there.
  2. Step 2: Understand optional access

    Accessing scores["Charlie"] returns an optional Int?; printing it directly shows Optional(95), not 95.
  3. Step 3: Identify missing unwrap

    To print the value without Optional(...), unwrap it safely or use ?? to provide default.
  4. Final Answer:

    Missing unwrap of optional when printing -> Option D
  5. Quick Check:

    Dictionary access returns optional, unwrap needed [OK]
Hint: Remember dictionary access returns optional, unwrap before use [OK]
Common Mistakes:
  • Thinking keys must be integers
  • Assuming dictionary is immutable by default
  • Ignoring optional nature of dictionary values
5. Given a dictionary let items = ["pen": 3, "notebook": 0, "eraser": 2], which Swift code correctly creates a new dictionary containing only items with quantity greater than zero?
hard
A. let filtered = items.compactMap { $0.value > 0 }
B. let filtered = items.filter { $0.key > 0 }
C. let filtered = items.filter { $0.value > 0 }
D. let filtered = items.map { $0.value > 0 }

Solution

  1. Step 1: Understand filtering dictionary by value

    We want to keep pairs where value > 0, so filter with condition on $0.value.
  2. Step 2: Analyze each option

    let filtered = items.filter { $0.value > 0 } uses filter with correct condition. let filtered = items.filter { $0.key > 0 } incorrectly compares key (a String) to 0. Options A and C use map/compactMap which transform values, not filter pairs.
  3. Final Answer:

    let filtered = items.filter { $0.value > 0 } -> Option C
  4. Quick Check:

    Filter dictionary by value > 0 = let filtered = items.filter { $0.value > 0 } [OK]
Hint: Use filter with $0.value condition to keep matching pairs [OK]
Common Mistakes:
  • Filtering by key instead of value
  • Using map instead of filter for selection
  • Using compactMap which changes type, not filters
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard