Skip to content

Commit 0a4ccfe

Browse files
committed
Fixed DjangoGirls#82 -- Improved the chapter on dictionaries.
Thanks to @kerstin for the feedback.
1 parent bfcc0d8 commit 0a4ccfe

File tree

1 file changed

+32
-19
lines changed

1 file changed

+32
-19
lines changed

python_introduction/README.md

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -220,57 +220,70 @@ You can find a list of all available list methods in this chapter of the Python
220220

221221
## Dictionaries
222222

223-
A dictionary is similar to a list, but you access values by looking up a key instead of an index. A key can be any string or number. The syntax to define a dictionary is:
223+
A dictionary is similar to a list, but you access values by looking up a key instead of an index. A key can be any string or number. The syntax to define an empty dictionary is:
224224

225225
>>> {}
226226
{}
227227

228228
This shows that you just created an empty dictionary. Hurray!
229229

230-
Now, try writing the following command:
230+
Now, try writing the following command (try replacing your own information too):
231231

232-
>>> django_dolls = {'Dottie' : 15, 'Lottie' : 305, 'EmmyLou' : 17}
232+
>>> participant = {'name' : 'Ola', 'country' : 'Poland', 'favorite_numbers' : [7, 42, 92]}
233233

234-
Don't be surprised with the weird names. Go to the link: http://hubpages.com/hub/50-Doll-Names to look for more cute doll names. :P Just Kidding (You should do this if and only if you have a lot of time).
234+
With this command, you just created a variable named `participant` with three key-value pairs:
235235

236-
Above, you just created a variable named `django_dolls` with three key-value pairs. The key Dottie points to the value 15, Lottie points to the value 305, EmmyLou points to the value 17. Do you want to check? Type:
236+
- The key `name` points to the value `'Ola'` (a `string` object),
237+
- `country` points to `'Poland'` (another `string`),
238+
- and `favorite_numbers` points to `[7, 42, 92]` (a `list` with three numbers in it).
237239

238-
>>> print(django_dolls['Dottie'])
239-
15
240+
You can check the content of individual keys with this syntax:
241+
242+
>>> print(participant['name'])
243+
Ola
240244

241245
See, it's similar to a list. But you don't need to remember the index - just the name.
242246

247+
What happens if we ask Python the value of a key that doesn't exist? Can you guess? Let's try it and see!
248+
249+
>>> participant['age']
250+
Traceback (most recent call last):
251+
File "<stdin>", line 1, in <module>
252+
KeyError: 'age'
253+
254+
Look, another error! This one is a **KeyError**. Python is helpful and tells you that the key `'age'` doesn't exist in this dictionary.
255+
243256
When to use a dictionary or a list? Well, a good point to ponder on. Just have a solution in mind before looking at the answer in the next line.
244257

245258
- Do you just need an ordered sequence of items? Go for a list.
246259
- Do you need to associate values with keys, so you can look them up efficiently (by key) later on? Use a dictionary.
247260

248261
Dictionaries are mutable like "lists" meaning that they can be changed after they are created. You can add new key/value pairs to the dictionary after it is created, like:
249262

250-
>>> django_dolls['Jilly'] = 67
263+
>>> participant['favorite_language'] = 'Python'
251264

252265
Like the lists, using `len()` method on the dictionaries, returns the number of key-value pairs in the dictionary. Go ahead and type in the command:
253266

254-
>>> len(django_dolls)
267+
>>> len(participant)
255268
4
256269

257-
I hope it makes sense uptil now. :) Ready for some more fun with Dictionaries? Hop on the next line for some amazing things.
270+
I hope it makes sense uptil now. :) Ready for some more fun with dictionaries? Hop on the next line for some amazing things.
258271

259-
You can use `del` command to delete an item in the dictionary which has particular. Say, if you want to delete the entry corresponding to the key 'Dottie', just type in the following command:
272+
You can use the `del` command to delete an item in the dictionary. Say, if you want to delete the entry corresponding to the key `'favorite_numbers'`, just type in the following command:
260273

261-
>>> del django_dolls['Dottie']
262-
>>> django_dolls
263-
{'Jilly': 67, 'EmmyLou': 17, 'Lottie': 305}
274+
>>> del participant['favorite_numbers']
275+
>>> participant
276+
{'country': 'Poland', 'favorite_language': 'Python', 'name': 'Ola'}
264277

265-
As you can see from the output, the key-value pair corresponding to 'Dottie' key has been deleted.
278+
As you can see from the output, the key-value pair corresponding to 'favorite_numbers' key has been deleted.
266279

267280
Apart from this, you can also change a value associated with an already created key in the dictionary. Type:
268281

269-
>>> django_dolls['Jilly'] = 100
270-
>>> django_dolls
271-
{'Jilly': 100, 'EmmyLou': 17, 'Lottie': 305}
282+
>>> participant['country'] = 'Germany'
283+
>>> participant
284+
{'country': 'Germany', 'favorite_language': 'Python', 'name': 'Ola'}
272285

273-
As you can see, the value of the key 'Jilly' has been altered from *67* to *100*. :) Exciting? Hurrah! You just learnt another amazing thing.
286+
As you can see, the value of the key `'country'` has been altered from `'Poland'` to `'Germany'`. :) Exciting? Hurrah! You just learnt another amazing thing.
274287

275288
### Summary
276289

0 commit comments

Comments
 (0)