《Python编程从入门到实践》_第六章_字典

一个简单的字典

#用户信息
user = {'name':'Frank','age':'23','city':'shanghai'}
print(user['name'])
print(user['age'])
print(user['city'])
#运行结果
Frank
23
shanghai

 

字典的结构

在python里面,字典就是一系列的 键-值,每个值都与一个值是一一对应的,键可以是数字、字符串、列表和字典。实际上,可以将任何python对象用作字典的值。

 

使用字典

访问字典中的值
要获取与键相关的值,可依次指定字典名和放在方括号内的键
#用户信息
user = {'name':'Frank','age':'23','city':'shanghai'}
print(user)
user['hobby']='reading'
print(user)
#运行结果
{'name': 'Frank', 'age': '23', 'city': 'shanghai'}
{'name': 'Frank', 'age': '23', 'city': 'shanghai', 'hobby': 'reading'}

添加键-值对

字典是一种动态结构,可以随时添加,可依次指定字典名、用方括号括起来的键和对应的值

#用户信息
user = {'name':'Frank','age':'23','city':'shanghai'}
print(user)
user['hobby']='reading'
print(user)
#运行结果
{'name': 'Frank', 'age': '23', 'city': 'shanghai'}
{'name': 'Frank', 'age': '23', 'city': 'shanghai', 'hobby': 'reading'}
修改值
给键对应值的重新赋值就可以了
#用户信息
user = {'name':'Frank','age':'23','city':'shanghai'}
print(user)
user['city']='nanjing'
print(user)
#运行结果
{'name': 'Frank', 'age': '23', 'city': 'shanghai'}
{'name': 'Frank', 'age': '23', 'city': 'nanjing'}

删除键-值对

删除的键值对永远消失了

#用户信息
user = {'name':'Frank','age':'23','city':'shanghai'}
print(user)
del user['city']
print(user)
#运行结果
{'name': 'Frank', 'age': '23', 'city': 'shanghai'}
{'name': 'Frank', 'age': '23'}

常用的格式

#最喜欢的语言
favorite_languages = {
    'Jen':'python',
    'Frank':'c++',
    'Tom':'JAVA',
    }
print(favorite_languages)
#运行结果
{'Jen': 'python', 'Frank': 'c++', 'Tom': 'JAVA'}

最后一个键值对后面可以加上一个逗号,也可以不加

 

遍历字典

要是for循环遍历字典,可以使用两个变量,用于存储键-值。方法items()返回一个键-值队列表。

#最喜欢的语言
favorite_languages = {
    'Jen':'python',
    'Frank':'c++',
    'Tom':'JAVA',
    'Sabar':'python',
    'Bob':'ruby',    
    }
for k,v in favorite_languages.items():
    print('\nkey: ',k)
    print('value: ',v)
#运行结果

key:  Jen
value:  python

key:  Frank
value:  c++

key:  Tom
value:  JAVA

key:  Sabar
value:  python

key:  Bob
value:  ruby

如果只需要遍历键呢?
可以使用方法keys(),遍历字典时,默认遍历所有的键,因此如果不加keys(),并不会影响输出,加keys()可以便于代码的阅读和理解

#最喜欢的语言
favorite_languages = {
    'Jen':'python',
    'Frank':'c++',
    'Tom':'JAVA',
    'Sabar':'python',
    'Bob':'ruby',    
    }
for name in favorite_languages.keys():
    print('\nname: ',name)
#运行结果
name:  Jen
name:  Frank
name:  Tom
name:  Sabar
name:  Bob

怎么对键排排队?

这里我们就学到之前用的函数sorted(),临时的排队。

#最喜欢的语言
favorite_languages = {
    'Jen':'python',
    'Frank':'c++',
    'Tom':'JAVA',
    'Sabar':'python',
    'Bob':'ruby',    
    }
for name in sorted(favorite_languages.keys()):
    print('\nname: ',name)
#运行结果
name:  Bob
name:  Frank
name:  Jen
name:  Sabar
name:  Tom

遍历字典中所有值

如果你只对字典中的值感兴趣,可以是用方法value()

#最喜欢的语言
favorite_languages = {
    'Jen':'python',
    'Frank':'c++',
    'Tom':'JAVA',
    'Sabar':'python',
    'Bob':'ruby',    
    }
for value in favorite_languages.values():
    print(value)
#运行结果
python
c++
JAVA
python
ruby
如上面的运行结果,我们看到了有重复的值,那么如何消除重复的值?
调用set()即可!
#最喜欢的语言
favorite_languages = {
    'Jen':'python',
    'Frank':'c++',
    'Tom':'JAVA',
    'Sabar':'python',
    'Bob':'ruby',    
    }
for value in set(favorite_languages.values()):
    print(value)
#运行结果
python
JAVA
c++
ruby

 

嵌套

有的时候,你需要将字典存储在列表里面,有的时候你需要将裂变存储在字典里面,有的时候你也许会将字典存储在字典里面,这种就称为嵌套。
在列表中放入字典
#创建10个绿色的外星人
aliens = []   #创建列表用来装外星人
for alien_number in range(10):
    new_alien = {'color':'green','speed':'low','points':5}
    aliens.append(new_alien)
for alien in aliens[:5]:  #显示前5个外星人属性
    print(alien)
print("....")
print(aliens[0]['color']) #显示第一个外星人的颜色
#运行结果
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
{'color': 'green', 'speed': 'low', 'points': 5}
....
green

在字典中存储列表

#最喜欢的语言
favorite_languages = {
    'jen':['python','c++','Java'],
    'frank':['python','golang'],
    'tom':['c','PHP','python'],
    }
for name,languages in favorite_languages.items():   #这里我们使用了languages来存列表的值
    print("\n" + name.title() + "'s favorite languages are:")
    for language in languages:                      #使用for循环遍历语言列表
        print("\t" + language.title())
#运行结果
Jen's favorite languages are:
    Python
    C++
    Java
Frank's favorite languages are:
    Python
    Golang
Tom's favorite languages are:
    C
    Php
    Python

在字典里面存储字典

#信息字典
user = {
    'aeinstein':{
        'first':'albert',
        'last':'einstein',
        'location':'princeton',
                 },
    'mcurie':{
        'first':'marie',
        'last':'curie',
        'location':'paris',
             },
        }
for username,user_info in user.items():
    print("\nUsername:",username)
    fullname = user_info['first'] + ' ' +user_info['last']
    location = user_info['location']
    print("\tFull name:" + fullname.title())
    print("\tLocation:" + location.title())
#运行结果
Username: aeinstein
    Full name:Albert Einstein
    Location:Princeton
Username: mcurie
    Full name:Marie Curie
    Location:Paris

 

posted @ 2017-06-05 00:22  liubinsh  阅读(958)  评论(0编辑  收藏  举报