What if you could find any piece of information instantly, no matter how big your list grows?
Why Dictionary creation and access in Swift? - Purpose & Use Cases
Imagine you have a list of friends and their phone numbers written on paper. Every time you want to find a number, you have to scan the whole list from top to bottom.
This manual search is slow and frustrating. If the list is long, you might make mistakes or miss the number you want. It's hard to keep the list organized and update it quickly.
Using a dictionary in Swift lets you store each friend's name as a key and their phone number as a value. You can find any number instantly by using the friend's name, without searching through the whole list.
let friends = [("Alice", "123"), ("Bob", "456")] var number = "" for friend in friends { if friend.0 == "Bob" { number = friend.1 } }
let friends = ["Alice": "123", "Bob": "456"] let number = friends["Bob"]
It makes finding, adding, or changing information fast and easy, just like looking up a word in a dictionary.
Apps use dictionaries to quickly find user settings, like language or theme, without slowing down the app.
Dictionaries store data as key-value pairs for quick access.
They save time by avoiding long searches.
They make your code cleaner and easier to update.
Practice
Solution
Step 1: Understand dictionary purpose
Dictionaries store data as pairs of keys and values, allowing fast access by key.Step 2: Compare options
Only To store data in key-value pairs for quick lookup correctly describes this key-value storage purpose.Final Answer:
To store data in key-value pairs for quick lookup -> Option AQuick Check:
Dictionaries = key-value storage [OK]
- Confusing dictionaries with arrays (which have no keys)
- Thinking dictionaries perform calculations
- Assuming dictionaries create UI elements
Solution
Step 1: Identify Swift dictionary syntax
Swift dictionaries use square brackets with key-value pairs separated by colons.Step 2: Check each option
let dict = ["apple": 1, "banana": 2] uses correct syntax: ["key": value, ...]. Others use tuples, braces, or arrays incorrectly.Final Answer:
let dict = ["apple": 1, "banana": 2] -> Option BQuick Check:
Dictionary syntax = [key: value] [OK]
- Using parentheses instead of square brackets
- Using curly braces which define closures
- Listing keys and values without colons
let fruits = ["apple": 3, "banana": 5] print(fruits["banana"] ?? 0)
Solution
Step 1: Access dictionary value by key
fruits["banana"] looks up the value for key "banana", which is 5.Step 2: Use nil-coalescing operator
The ?? 0 means if the key is missing (nil), print 0; here key exists, so print 5.Final Answer:
5 -> Option AQuick Check:
fruits["banana"] = 5 [OK]
- Expecting nil instead of default value
- Printing the key instead of the value
- Confusing optional with direct value
var scores = ["Alice": 90, "Bob": 85] scores["Charlie"] = 95 print(scores["Charlie"])
Solution
Step 1: Check dictionary modification
Adding a new key-value pair to a var dictionary is allowed, so no error there.Step 2: Understand optional access
Accessing scores["Charlie"] returns an optional Int?; printing it directly shows Optional(95), not 95.Step 3: Identify missing unwrap
To print the value without Optional(...), unwrap it safely or use ?? to provide default.Final Answer:
Missing unwrap of optional when printing -> Option DQuick Check:
Dictionary access returns optional, unwrap needed [OK]
- Thinking keys must be integers
- Assuming dictionary is immutable by default
- Ignoring optional nature of dictionary values
let items = ["pen": 3, "notebook": 0, "eraser": 2], which Swift code correctly creates a new dictionary containing only items with quantity greater than zero?Solution
Step 1: Understand filtering dictionary by value
We want to keep pairs where value > 0, so filter with condition on $0.value.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.Final Answer:
let filtered = items.filter { $0.value > 0 } -> Option CQuick Check:
Filter dictionary by value > 0 = let filtered = items.filter { $0.value > 0 } [OK]
- Filtering by key instead of value
- Using map instead of filter for selection
- Using compactMap which changes type, not filters
Ready to prove it?
Pass the test and this pattern moves unknown
