第六章 字典

        6.2 使用字典

6.2.1 访问字典中的值

6.2.2 添加键—值对

6.2.3 先创建一个空字典

6.2.4 修改字典中的值

6.2.5 删除键—值对

         6.2.6 由类似对象组成的字典

6.3 遍历字典

6.3.1 遍历所有的键—值对

6.3.2 遍历字典中的所有键

6.3.3 按顺序遍历字典中的所有键

6.4 嵌套

        6.4.1 字典列表

6.4.2 在字典中存储列表

6.4.3 在字典中存储 字典


6.2 使用字典

6.2.1 访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示:

dict = {'颜色':'红色'}
print(dict['颜色'])


>>>
红色

6.2.2 添加键—值对

dict = {'颜色':'红色'}
dict['数字'] = 5
dict['目标'] = 10
print(dict)


>>>
{'颜色': '红色', '数字': 5, '目标': 10}

6.2.3 先创建一个空字典

dict = {}

6.2.4 修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。

dict = {'颜色': '红色', '数字': 5, '目标': 10}
dict['颜色'] = '绿色'
print(dict)


>>>
dict = {'颜色': '绿色', '数字': 5, '目标': 10}

6.2.5 删除键—值对

对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除。使用del语句时, 必须指定字典名和要删除的键。

dict = {'颜色': '绿色', '数字': 5, '目标': 10}
del dict['目标']
print(dict)


>>>
dict = {'颜色': '绿色', '数字': 5}

注意 删除的键—值对永远消失了。

6.2.6 由类似对象组成的字典

在前面的示例中,字典存储的是一个对象(游戏中的一个外星人)的多种信息,但你也可以 使用字典来存储众多对象的同一种信息。

favorite_languages = { 
    '张三': 'python',
    '李四': 'c',
    '王五': 'ruby',
    '赵六': 'python', 
    } 

注意 对于较长的列表和字典,大多数编辑器都有以类似方式设置其格式的功能。对于较长的 字典,还有其他一些可行的格式设置方式,因此在你的编辑器或其他源代码中,你可能 会看到稍微不同的格式设置方式。

6.3 遍历字典

6.3.1 遍历所有的键—值对

favorite_languages = { 
    '张三': 'python',
    '李四': 'c',
    '王五': 'ruby',
    '赵六': 'python', 
    } 
for key,value in favorite_languages.items():
    print('\nKey:' + key)
    print('Value:'+ value)


>>>
Key:张三
Value:python


Key:李四
Value:c


Key:王五
Value:ruby


Key:赵六

要编写用于遍历字典的for循环,可声明两个变量,用于存储键—值对中的键和值。 对于这两个变量,可使用任何名称。

6.3.2 遍历字典中的所有键

在不需要使用字典中的值时,方法keys()很有用。

for name in favorite_languages.keys():
    print(name) 


>>>
张三
李四
王五
赵六

6.3.3 按顺序遍历字典中的所有键

调用了函数sorted()排序

favorite_languages = { 
    'zhangsan':'python',
    'lisi':'c',
    'wangwu':'ruby',
    'zhaoliu':'python', 
    }    
for name in sorted(favorite_languages.keys()):
    print(name + 'thank you for taking the poll!')


>>>
lisithank you for taking the poll!
wangwuthank you for taking the poll!
zhangsanthank you for taking the poll!
zhaoliuthank you for taking the poll!

6.3.4 遍历字典中的所有值

favorite_languages = { 
    'zhangsan':'python',
    'lisi':'c',
    'wangwu':'jave',
    'zhaoliu':'python', 
    } 
for language in favorite_languages.values():
    print(language.title())


>>>
Python
C
Jave
Python

这种做法提取字典中所有的值,而没有考虑是否重复。涉及的值很少时,这也许不是问题, 但如果被调查者很多,最终的列表可能包含大量的重复项。为剔除重复项,可使用集合(set)。 集合类似于列表,但每个元素都必须是独一无二的:

for language in set(favorite_languages.values()):
    print(language.title())
    
>>>
Jave
Python
C

6.4 嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。

6.4.1 字典列表

dict_1 = {'张三':'18'}
dict_2 = {'李四':'19'}
dict_3 = {'王五':'17'}
dicts = [dict_1,dict_2,dict_3]
for dict in dicts:
    print(dict) 


>>>
{'张三': '18'}
{'李四': '19'}
{'王五': '17'}

6.4.2 在字典中存储列表

favorite_languages = { 
    'zhangsan':['python','jave'],
    'lisi':['c','jave'],
    'wangwu':['jave','c++'],
    'zhaoliu':['python']
    } 
for name,languages in favorite_languages.items():
    print('\n'+name.title()+"'s favotite languages are:")
    for language in languages:
        print('\t' + language.title())


>>>


Zhangsan's favotite languages are:
        Python
        Jave


Lisi's favotite languages are:
        C
        Jave


Wangwu's favotite languages are:
        Jave
        C++


Zhaoliu's favotite languages are:
        Python

6.4.3 在字典中存储 字典

users = { 
 'aeinstein': { 
 'first': 'albert', 
 'last': 'einstein', 
 'location': 'princeton', 
 }, 
 'mcurie': { 
 'first': 'marie', 
 'last': 'curie', 
 'location': 'paris', 
 }, 
 } 
for username, user_info in users.items(): 
    print("\nUsername: " + username) 
    full_name = user_info['first'] + " " + user_info['last'] 
    location = user_info['location'] 
    print("\tFull name: " + full_name.title()) 
    print("\tLocation: " + location.title()) 


>>>


Username: aeinstein
        Full name: Albert Einstein
        Location: Princeton


Username: mcurie
        Full name: Marie Curie
        Location: Paris
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值