Community Data Science Course (Spring 2016)/Day 3 Notes: Difference between revisions

From CommunityData
No edit summary
No edit summary
Line 1: Line 1:
* A <code>list</code> is useful to store an ordered set of items that are indexed by integers.
==Dictionaries==
* A <code>dict</code> or dictionary is a way to store key/value pairs.
 
* Use dictionaries to store key/value pairs.
* Dictionaries do not guarantee ordering.
* A given key can only have one value, but multiple keys can have the same value.
 
====Initialization====
 
>>> my_dict = {}
>>> my_dict
{}
>>> your_dict = {"Alice" : "chocolate", "Bob" : "strawberry", "Cara" : "mint chip"}
>>> your_dict
{'Bob': 'strawberry', 'Cara': 'mint chip', 'Alice': 'chocolate'}
 
====Adding elements to a dictionary====
 
>>> your_dict["Dora"] = "vanilla"
>>> your_dict
{'Bob': 'strawberry', 'Cara': 'mint chip', 'Dora': 'vanilla', 'Alice': 'chocolate'}
 
====Accessing elements of a dictionary====
 
>>> your_dict["Alice"]
'chocolate'
>>> your_dict.get("Alice")
'chocolate'
 
>>> your_dict["Eve"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Eve'
>>> "Eve" in your_dict
False
>>> "Alice" in your_dict
True
>>> your_dict.get("Eve")
>>> person = your_dict.get("Eve")
>>> print(person)
None
>>> print(type(person))
<type 'NoneType'>
>>> your_dict.get("Alice")
'chocolate'
 
====Changing elements of a dictionary====
 
>>> your_dict["Alice"] = "coconut"
>>> your_dict
{'Bob': 'strawberry', 'Cara': 'mint chip', 'Dora': 'vanilla', 'Alice': 'coconut'}
 
====Histograms====
 
'''Challenge''': using wordplay example from last week, count the number of words that start with each letter.
 
This kind of problem is very common Data Science, and it is easy with a dictionary.
 
(note: I will post the solution after class)
 
====For loops and dictionaries====
 
There are two common ways to iterate through dictionaries:
 
>>> ages = {'Tommy': 32, Zula: '9', 'Joanna': 18}
>>> for key in ages:
>>>    print(key + " is " + str(ages[key]) + " years old")
 
>>> for key, value in ages.items():
>>>    print(key + " is " + str(value) + " years old")

Revision as of 23:05, 12 April 2017

Dictionaries

  • Use dictionaries to store key/value pairs.
  • Dictionaries do not guarantee ordering.
  • A given key can only have one value, but multiple keys can have the same value.

Initialization

>>> my_dict = {}
>>> my_dict
{}
>>> your_dict = {"Alice" : "chocolate", "Bob" : "strawberry", "Cara" : "mint chip"}
>>> your_dict
{'Bob': 'strawberry', 'Cara': 'mint chip', 'Alice': 'chocolate'}

Adding elements to a dictionary

>>> your_dict["Dora"] = "vanilla"
>>> your_dict
{'Bob': 'strawberry', 'Cara': 'mint chip', 'Dora': 'vanilla', 'Alice': 'chocolate'}

Accessing elements of a dictionary

>>> your_dict["Alice"]
'chocolate'
>>> your_dict.get("Alice")
'chocolate'
>>> your_dict["Eve"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Eve'
>>> "Eve" in your_dict
False
>>> "Alice" in your_dict
True
>>> your_dict.get("Eve")
>>> person = your_dict.get("Eve")
>>> print(person)
None
>>> print(type(person))
<type 'NoneType'>
>>> your_dict.get("Alice")
'chocolate'

Changing elements of a dictionary

>>> your_dict["Alice"] = "coconut"
>>> your_dict
{'Bob': 'strawberry', 'Cara': 'mint chip', 'Dora': 'vanilla', 'Alice': 'coconut'}

Histograms

Challenge: using wordplay example from last week, count the number of words that start with each letter.

This kind of problem is very common Data Science, and it is easy with a dictionary.

(note: I will post the solution after class)

For loops and dictionaries

There are two common ways to iterate through dictionaries:

>>> ages = {'Tommy': 32, Zula: '9', 'Joanna': 18}
>>> for key in ages:
>>>     print(key + " is " + str(ages[key]) + " years old")
>>> for key, value in ages.items():
>>>     print(key + " is " + str(value) + " years old")