第6章 字典

本文详细介绍了Python中的字典数据结构,包括如何使用键值对存储和访问信息,添加、修改、删除元素,以及遍历字典的不同方法,如items()、keys()和values()。此外,还涵盖了字典嵌套在列表和字典中的应用。

字典可存储的信息几乎不受限制。

1、使用字典

person_0 = {'name': '小李', 'age': '18'}
# 字典是键值对,用{}括起,键值对是两个相关联的值


# 访问字典中的值
name = person_0['name']
age = person_0['age']

# 添加键值对
person['city'] = '无锡'

# 修改字典中的值
person_0 = {'name': '小李', 'age': '18'}
person_0['age'] = 19
print(person_0['age'])

# 删除键值对
person_0 = {'name': '小李', 'age': '18'}
del person_0['age']    # 使用del时,必须指定字典名和要删除的键,且该键值对被永久删除

# 使用get()来访问值
person_0 = {'name': '小李', 'age': '18'}
city_value = person_0.get('city', f"没有{person_0['name']}所在城市的信息。")
print(city_value)    # 若指定的键有可能不存在,应考虑使用get()方法

2、遍历字典

# 遍历所有键值对,方法items()
person_0 = {'name': '小李', 'age': '18', 'city': '无锡'}

for key, value in person_0.items():
    print(key)
    print(value)

# or

people = {'小李': 18, '小杨': 19, '小孙': 20}
for name, age in people.items():
    print(f"{name}的年龄是{age}。"

# 遍历字典中的所有键,方法keys()
people = {'小李': 18, '小杨': 19, '小孙': 20}
for name in people.keys():
    print(name)
# 方法keys()并非只能用于遍历,实际上,它返回一个列表,其中包含字典中的所有键

# 按特定顺序遍历字典总的所有键,函数sorted()
people = {'lily': 18, 'jack': 19, 'nancy': 20}
for name in sorted(people.keys()):
    print(name)


# 遍历字典中的所有值,方法values()
people = {'小李': 18, '小杨': 19, '小孙': 19}
for age in people.values():
    print(age)
# 这种做法提取字典中的值时,未考虑值是否重复。为剔除重复项,可使用函数set()
people = {'小李': 18, '小杨': 19, '小孙': 19}
for age in set(people.values()):
    print(age)
# 集合和字典都是用{}定义的,其区别是,集合不会以特定的顺序存储元素    

3、嵌套

# 字典列表
pet_0 = {'类型': '狗', '主人': '小李'}
pet_1 = {'类型': '猫', '主人': '小杨'}
pet_2 = {'类型': '兔', '主人': '小孙'}
pets = [pet_0, pet_1, pet_2]

# or
pets = []

pet = {'类型': '狗', '主人': '小李'}
pets.append(pet)

pet = {'类型': '猫', '主人': '小杨'}
pets.append(pet)

pet = {'类型': '兔', '主人': '小孙'}
pets.append(pet)


# 字典中嵌套列表
favorite_places = {
    '小杨': ['张家港', '有小李的地方', '无锡'],
    '小李': ['天泉湖', '无锡', '有小杨的地方'],
    '小孙': ['连云港', '花果山', '水帘洞']
    }

# 字典中嵌套字典
cities = {
    '东京': {
        '所属国家': '日本',
        '人口数量': '约3000万',
        '相关事实': '东京是世界上人口最多的城市之一,也是日本的首都和最大的商业中心。它以其现代化的建筑、繁忙的街道和丰富的文化活动而闻名',
        },
    '纽约': {
        '所属国家': '美国',
        '人口数量': '约860万',
        '相关事实': '纽约市是美国最大的城市,也是全球金融、商业和文化中心之一。它拥有世界上最著名的天际线之一,包括自由女神像和时代广场',
        },
    '巴黎': {
        '所属国家': '法国',
        '人口数量': '约220万',
        '相关事实': '巴黎是法国的首都和最大的城市,也是全球最受欢迎的旅游目的地之一。它以其浪漫的氛围、艺术品丰富的博物馆和标志性的地标(如埃菲尔铁塔和巴黎圣母院)而闻名',
        },
    }

### 关于 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} ``` #### 学习资源推荐 在头歌平台上学习第七关于字典的内容时,建议关注以下几个方面: - **基础概念**: 掌握如何定义、初始化以及基本的操作方式。 - **高级应用**: 尝试理解嵌套字典的概念及其实际应用场景。 - **练习题目**: 完成平台上的配套练习题巩固所学知识点。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值