Bird
Raised Fist0
Swiftprogramming~20 mins

Dictionary creation and access in Swift - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Swift Dictionary Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output of this Swift dictionary access?
Consider the following Swift code. What will be printed?
Swift
let fruits = ["apple": 3, "banana": 5, "orange": 2]
print(fruits["banana"] ?? 0)
A0
BOptional(5)
Cbanana
D5
Attempts:
2 left
💡 Hint
Remember that using ?? provides a default value if the key is missing.
❓ Predict Output
intermediate
2:00remaining
What does this dictionary creation code produce?
What is the content of the dictionary 'numbers' after this code runs?
Swift
let numbers = Dictionary(uniqueKeysWithValues: [(1, "one"), (2, "two"), (3, "three")])
print(numbers)
AError: Cannot create dictionary this way
B[1: "one", 2: "two", 3: "three"]
C[(1, "one"), (2, "two"), (3, "three")]
D["one": 1, "two": 2, "three": 3]
Attempts:
2 left
💡 Hint
Dictionary(uniqueKeysWithValues:) creates a dictionary from a sequence of key-value pairs.
❓ Predict Output
advanced
2:00remaining
What error does this Swift dictionary code raise?
What error will occur when running this code?
Swift
var dict = ["a": 1, "b": 2]
let value = dict["c"]!
print(value)
ARuntime error: Unexpectedly found nil while unwrapping an Optional value
BCompile-time error: Key not found in dictionary
CPrints 0
DPrints nil
Attempts:
2 left
💡 Hint
Using ! to unwrap an Optional that is nil causes a runtime crash.
🧠 Conceptual
advanced
2:00remaining
How many items are in the dictionary after this code?
After running this Swift code, how many key-value pairs does the dictionary 'items' contain?
Swift
var items = ["x": 10, "y": 20]
items["z"] = 30
items["x"] = nil
A1
B3
C2
D0
Attempts:
2 left
💡 Hint
Setting a dictionary value to nil removes the key.
🔧 Debug
expert
2:00remaining
What is the output of this Swift dictionary comprehension?
What will be printed by this Swift code?
Swift
let squares = Dictionary(uniqueKeysWithValues: (1...3).map { ($0, $0 * $0) })
print(squares[2] ?? -1)
A4
B2
C-1
DOptional(4)
Attempts:
2 left
💡 Hint
The dictionary maps numbers to their squares. Accessing key 2 returns 4.

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