Learn Python The Hard Way学习(39) - 可爱的字典
2012-07-03 16:14
549 查看
下面我们学习另外一种常用的容器:字典。
python叫dict,有的语言叫hash,我都会使用到,这些都不是重点,重点是它和list的区别。我们这样使用list:
>>> things = ['a', 'b', 'c', 'd']
>>> print things[1]
b
>>> things[1] = 'z'
>>> print things[1]
z
>>> print things
['a', 'z', 'c', 'd']
我们可以在list中使用索引,就是说我们可以通过数字找到list中的元素。
而dict不仅仅可以使用数字,还可以使用任何东西找到元素,看下面的例子:
>>> stuff = {'name': 'Zed', 'age': 36, 'height': 6*12+2}
>>> print stuff['name']
Zed
>>> print stuff['age']
36
>>> print stuff['height']
74
>>> stuff['city'] = "san Francisco"
>>> print stuff['city']
san Francisco
>>>
我们可以用一个字符串为字典插入数据,也能使用数字,比如:
>>> stuff[1] = "Wow"
>>> stuff[2] = "Neato"
>>> print stuff[1]
Wow
>>> print stuff[2]
Neato
>>> print stuff
{'city': 'san Francisco', 2: 'Neato', 'name': 'Zed', 1: 'Wow', 'age': 36, 'height': 74}
>>>
当然,字典不可能只可以插入数据,可以删除数据:
>>> del stuff['city']
>>> del stuff[1]
>>> del stuff[2]
>>> stuff
{'name': 'Zed', 'age': 36, 'height': 74}
>>>
下面做一个练习:
运行结果
root@he-desktop:~/mystuff# python ex39.py
----------
NY State has: New York
OR State has: Portland
----------
Michigan's abbreviation is: MI
Florida's abbreviation is: FL
----------
Michigan has: Detroit
Florida has: Jacksonville
----------
California is abbreviated CA
Michigan is abbreviated MI
New York is abbreviated NY
Florida is abbreviated FL
Oregon is abbreviated OR
----------
FL has the city Jacksonville
CA has the city San Francisco
MI has the city Detroit
OR has the city Portland
NY has the city New York
----------
California state is abbreviated CA and has city San Francisco
Michigan state is abbreviated MI and has city Detroit
New York state is abbreviated NY and has city New York
Florida state is abbreviated FL and has city Jacksonville
Oregon state is abbreviated OR and has city Portland
----------
Sorry, no Texas.
The city for the state 'TX' is: Does Not Exist
加分练习
1. 用你当地的城市做这个练习。
2. 在python文档中找到字典的介绍,看看还能做些什么
3. 看看有什么是字典不能做的,主要是字典是无序的。
python叫dict,有的语言叫hash,我都会使用到,这些都不是重点,重点是它和list的区别。我们这样使用list:
>>> things = ['a', 'b', 'c', 'd']
>>> print things[1]
b
>>> things[1] = 'z'
>>> print things[1]
z
>>> print things
['a', 'z', 'c', 'd']
我们可以在list中使用索引,就是说我们可以通过数字找到list中的元素。
而dict不仅仅可以使用数字,还可以使用任何东西找到元素,看下面的例子:
>>> stuff = {'name': 'Zed', 'age': 36, 'height': 6*12+2}
>>> print stuff['name']
Zed
>>> print stuff['age']
36
>>> print stuff['height']
74
>>> stuff['city'] = "san Francisco"
>>> print stuff['city']
san Francisco
>>>
我们可以用一个字符串为字典插入数据,也能使用数字,比如:
>>> stuff[1] = "Wow"
>>> stuff[2] = "Neato"
>>> print stuff[1]
Wow
>>> print stuff[2]
Neato
>>> print stuff
{'city': 'san Francisco', 2: 'Neato', 'name': 'Zed', 1: 'Wow', 'age': 36, 'height': 74}
>>>
当然,字典不可能只可以插入数据,可以删除数据:
>>> del stuff['city']
>>> del stuff[1]
>>> del stuff[2]
>>> stuff
{'name': 'Zed', 'age': 36, 'height': 74}
>>>
下面做一个练习:
# create a mapping of state to abbreviation states = { 'Oregon': 'OR', 'Florida': 'FL', 'California': 'CA', 'New York': 'NY', 'Michigan': 'MI' } # create a basic set of states and some cities in them cities = { 'CA': 'San Francisco', 'MI': 'Detroit', 'FL': 'Jacksonville' } # add same more cities cities['NY'] = 'New York' cities['OR'] = 'Portland' # print out some cities print '-' * 10 print "NY State has: ", cities['NY'] print "OR State has: ", cities['OR'] # print some states print '-' * 10 print "Michigan's abbreviation is: ", states['Michigan'] print "Florida's abbreviation is: ", states['Florida'] # do it by using the state then cities dict print '-' * 10 print "Michigan has: ", cities[states['Michigan']] print "Florida has: ", cities[states['Florida']] # print every state abbreviation print '-' * 10 for state, abbrev in states.items(): print "%s is abbreviated %s" % (state, abbrev) # print every city in state print '-' * 10 for abbrev, city in cities.items(): print "%s has the city %s" % (abbrev, city) # now do both at the same time print '-' * 10 for state, abbrev in states.items(): print "%s state is abbreviated %s and has city %s" % ( state, abbrev, cities[abbrev]) print '-' * 10 # safely get a abbreviation by state that might not be there state = states.get('Texas', None) if not state: print "Sorry, no Texas." # get a city with a default value city = cities.get('TX', 'Does Not Exist') print "The city for the state 'TX' is: %s" % city
运行结果
root@he-desktop:~/mystuff# python ex39.py
----------
NY State has: New York
OR State has: Portland
----------
Michigan's abbreviation is: MI
Florida's abbreviation is: FL
----------
Michigan has: Detroit
Florida has: Jacksonville
----------
California is abbreviated CA
Michigan is abbreviated MI
New York is abbreviated NY
Florida is abbreviated FL
Oregon is abbreviated OR
----------
FL has the city Jacksonville
CA has the city San Francisco
MI has the city Detroit
OR has the city Portland
NY has the city New York
----------
California state is abbreviated CA and has city San Francisco
Michigan state is abbreviated MI and has city Detroit
New York state is abbreviated NY and has city New York
Florida state is abbreviated FL and has city Jacksonville
Oregon state is abbreviated OR and has city Portland
----------
Sorry, no Texas.
The city for the state 'TX' is: Does Not Exist
加分练习
1. 用你当地的城市做这个练习。
2. 在python文档中找到字典的介绍,看看还能做些什么
3. 看看有什么是字典不能做的,主要是字典是无序的。
相关文章推荐
- Learn Python The Hard Way学习(50) - 你的第一个网站
- Learn Python The Hard Way学习(51) - 从浏览器取得输入
- Learn Python The Hard Way学习(3) - 数字和数学计算
- 【Python】Learn Python the hard way, ex39 字典操作
- Learn Python The Hard Way学习(1) - 好的开始
- Learn Python The Hard Way学习(21) - 函数可以返回信息
- [IT学习]Learn Python the Hard Way (Using Python 3)笨办法学Python3版本
- Learn Python The Hard Way学习(35) - 分支和函数
- Learn Python The Hard Way学习(44) - 继承还是组成?
- Learn Python The Hard Way学习(8) - 打印,还是打印
- Learn Python The Hard Way学习(22) - 到现在我们已经学到了什么?
- Learn Python The Hard Way学习(36) - 设计和调试
- 【Python】Learn Python the hard way, ex0 学习使用Terminal
- Learn Python The Hard Way学习(52) - 开始你的web游戏
- Learn Python The Hard Way学习(9) - 打印,打印,打印
- Learn Python The Hard Way学习(13) - 参数,解包,变量
- Learn Python The Hard Way学习(23) - 读一些代码
- Learn Python The Hard Way学习(37) - 复习
- Learn Python The Hard Way学习(45) - 自己做个游戏
- Learn Python The Hard Way学习(47) - 自动化测试