第六章 字典

本文详细介绍了Python中字典的基本操作方法,包括访问、添加、修改及删除字典中的键值对等内容,并通过实例展示了如何遍历字典,以及如何进行嵌套结构的设计。

        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
### 关于 Python 字典的学习引导 #### 什么是字典字典是一种可变容器模型,用于存储无序的数据集合。它由键值对组成,其中键(key)必须是不可变类型(如字符串、数字或元组),而值(value)可以是任意数据类型[^1]。 #### 如何创建字典? 可以通过大括号 `{}` 或者 `dict()` 构造函数来创建字典: ```python # 使用大括号 {} my_dict = {'Name': 'Alice', 'Age': 25} # 使用 dict() 函数 another_dict = dict(Name='Bob', Age=30) ``` #### 访问字典中的元素 通过键访问对应的值,语法如下:`dictionary[key]`。 如果尝试访问不存在的键,则会抛出 KeyError 错误。为了避免这种情况,可以使用 `.get()` 方法[^1]。 ```python >>> my_dict = {'Name': 'Alice', 'Age': 25} >>> print(my_dict['Name']) Alice >>> print(my_dict.get('Gender')) # 如果键不存在,返回 None 而不报错 None ``` #### 修改和添加字典元素 可以直接赋值给指定的键以修改其对应值;对于新键,同样可以用这种方式添加新的键值对[^1]。 ```python >>> my_dict = {'Name': 'Alice', 'Age': 25} >>> my_dict['Age'] = 26 # 修改已有键的值 >>> my_dict['Gender'] = 'Female' # 添加新键值对 >>> print(my_dict) {'Name': 'Alice', 'Age': 26, 'Gender': 'Female'} ``` #### 删除字典中的元素 有多种方法可以从字典中删除元素,比如 `del` 和 `.pop()` 方法[^1]。 ```python >>> my_dict = {'Name': 'Alice', 'Age': 25, 'Gender': 'Female'} >>> del my_dict['Age'] # 删除特定键 >>> removed_value = my_dict.pop('Gender') # 移除并返回该键的值 >>> print(removed_value) Female >>> print(my_dict) {'Name': 'Alice'} ``` #### 遍历字典 可以遍历字典的所有键、值或者键值对。 ```python for key in my_dict.keys(): print(key) for value in my_dict.values(): print(value) for key, value in my_dict.items(): print(f"{key}: {value}") ``` #### 字典推导式 类似于列表推导式,也可以利用字典推导式快速构建复杂的字典结构[^2]。 ```python squares = {x: x**2 for x in range(6)} print(squares) # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} ``` #### 学习资源推荐 在头歌平台上学习第七章关于字典的内容时,建议关注以下几个方面: - **基础概念**: 掌握如何定义、初始化以及基本的操作方式。 - **高级应用**: 尝试理解嵌套字典的概念及其实际应用场景。 - **练习题目**: 完成平台上的配套练习题巩固所学知识点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值