1 字典功能

字典是可变容器模型,且可存储任意类型对象;
字典的每个键值对 <key: value> 用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

一个简单的字典实例:person = {"name": "Alice", "age": 25, "city": "New York"}

2 创建字典

2.1 使用{ }创建字典

person = {"name": "Alice", "age": 25, "city": "New York"}

较长的字典可分行书写

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'rust','phil': 'python',}if 'erin' not in favorite_languages.keys():print("Erin, please take our poll!")friends = ['phil', 'sarah']
for name in favorite_languages.keys():print(f"Hi {name.title()}.")if name in friends:language = favorite_languages[name].title()print(f"\t{name.title()}, I see you love {language}!")

2.2 使用 dict() 函数创建字典

person = dict(name="Bob", age=30, city="Los Angeles")

2.3 从列表的键值对元组创建字典

items = [("apple", 1), ("banana", 2), ("orange", 3)]
fruit_counts = dict(items)

3 访问字典中的元素

person = {"name": "Alice", "age": 25, "city": "New York"}

访问元素:使用方括号 [] 通过键访问字典中的单个值。
只访问键:使用 keys() 方法获取所有键,并可以通过循环遍历。
只访问值:使用 values() 方法获取所有值,并可以通过循环遍历。
访问键值对:使用 items() 方法获取所有键值对,并可以通过循环遍历每个键值对。

3.1 访问字典中的键和值

3.1.1 访问单个元素:[ ]

通过[ ]访问单个键值对:通过指定键来获取对应的值,键不存在时会引发错误或返回默认值。

person = {"name": "Alice", "age": 25, "city": "New York"}
name = person["name"]
print(name)  # 输出:Alice

3.1.2 访问单个元素:get()

使用 get() 方法访问(更安全)

person = {"name": "Alice", "age": 25, "city": "New York"}
name = person.get("name")
age = person.get("age")
print(name, age)  # 输出:Alice 25
# 如果键不存在,返回默认值
country = person.get("country", "Unknown")
print(country)  # 输出:Unknown

建议优先使用 get() 方法来访问字典中的值,以避免因键不存在而导致的错误。

3.1.2 遍历所有元素键值对:逐个[ ]

alien_0 = {'color': 'green', 'speed': 'slow'}# 使用方括号访问每个元素
print(alien_0['color'])  # 输出:green
print(alien_0['speed'])  # 输出:slow

3.1.2.2 遍历所有键值对: for + [ ]

person = {"name": "Alice", "age": 25, "city": "New York"}# 遍历字典的键,然后使用方括号访问对应的值
for key in person:value = person[key]print(f"Key: {key}, Value: {value}")

output

Key: name, Value: Alice
Key: age, Value: 25
Key: city, Value: New York

person = {"name": "Alice", "age": 25, "city": "New York"}
for key, value in person():print()
# 输出:
# name: Alice
# age: 25
# city: New York

3.1.2.3 遍历所有键值对: items()

使用 items() 方法获取字典中的所有元素的键和值,然后通过循环访问。

person = {"name": "Alice", "age": 25, "city": "New York"}
for key, value in person.items():print(f"{key}: {value}")
# 输出:
# name: Alice
# age: 25
# city: New York
alien_0 = {'color': 'green', 'speed': 'slow'}# 获取字典的所有键值对
items = alien_0.items()
print(items)  # 输出:dict_items([('color', 'green'), ('speed', 'slow')])# 遍历字典的所有键值对
for key, value in alien_0.items():print(f"{key}: {value}")
# 输出:
# color: green
# speed: slow

3.2 只访问字典中的键

3.2.1 只访问字典中的键:变量名输出

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'rust','phil': 'python',}print("The following languages have been mentioned:")
for language in favorite_languages:print(language)

output:

jen
sarah
edward
phil

3.2.2 只访问字典中的键 :keys()

alien_0 = {'color': 'green', 'speed': 'slow'}# 获取字典的所有键
keys = alien_0.keys()
print(keys)  # 输出:dict_keys(['color', 'speed'])# 遍历字典的所有键
for key in alien_0:print(key)
# 输出:
# color
# speed

3.3 只访问字典元素的值

3.3.1 访问单个元素值: get() 方法

get() 方法是安全访问字典元素的推荐方式,尤其是在不确定字典中是否存在某个键时。如果字典中存在指定的键,它会返回该键对应的值;如果不存在,则返回一个默认值,而不是抛出错误。

alien_0 = {'color': 'green', 'speed': 'slow'}# 尝试获取键 'points' 对应的值
point_value = alien_0.get('points', 'No point value assigned.')
print(point_value)

对比

person = {“name”: “Alice”, “age”: 25, “city”: “New York”}
避免错误:使用 get() 方法可以避免因字典中没有指定键而引发的 KeyError。
提供默认值:可以指定一个默认值,使代码更具可读性和健壮性。
[]直接访问的区别
直接访问:alien_0[‘points’]
如果键不存在,会抛出 KeyError。 get() 方法:如果键不存在,返回默认值(如果没有指定默认值,则返回 None)。

3.3.2 通过方法values()所有元素的值

访问所有值,无需for循环,可直接输出所有值

alien_0 = {'color': 'green', 'speed': 'slow'}# 获取字典的所有值
values = alien_0.values()
print(values)  # 输出:dict_values(['green', 'slow'])# 遍历字典的所有值
for value in alien_0.values():print(value)
# 输出:
# green
# slow

3.4 排序后访问

sorted

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'rust','phil': 'python',}for name in sorted(favorite_languages.keys()):print(f"{name.title()}, thank you for taking the poll.")

4 修改字典中的元素

person = {"name": "Alice", "age": 25, "city": "New York"}# 修改现有键对应的值
person["age"] = 26
print(person)  # 输出:{'name': 'Alice', 'age': 26, 'city': 'New York'}# 添加新的键值对
person["country"] = "USA"
print(person)  # 输出:{'name': 'Alice', 'age': 26, 'city': 'New York', 'country': 'USA'}

5 删除字典中的元素

person = {"name": "Alice", "age": 25, "city": "New York"}# 使用 pop() 方法删除指定键及其关联值
age = person.pop("age")
print(age)  # 输出:25
print(person)  # 输出:{'name': 'Alice', 'city': 'New York'}# 使用 del 语句删除元素
del person["city"]
print(person)  # 输出:{'name': 'Alice'}# 清空字典
person.clear()
print(person)  # 输出:{}

6 遍历字典

person = {"name": "Alice", "age": 25, "city": "New York"}# 遍历字典的键
for key in person:print(key)
# 输出:
# name
# age
# city# 遍历字典的值
for value in person.values():print(value)
# 输出:
# Alice
# 25
# New York# 遍历字典的键值对
for key, value in person.items():print(f"{key}: {value}")
# 输出:
# name: Alice
# age: 25
# city: New York

7 检查某个键或值是否在字典中

person = {"name": "Alice", "age": 25, "city": "New York"}# 检查键是否存在于字典中
has_name = "name" in person
print(has_name)  # 输出:True# 检查值是否存在于字典中
has_alice = "Alice" in person.values()
print(has_alice)  # 输出:True

8 字典的嵌套

# 字典中嵌套字典
students = {"Alice": {"id": 1, "grade": "A"},"Bob": {"id": 2, "grade": "B"},"Charlie": {"id": 3, "grade": "C"}
}# 访问嵌套字典中的元素
alice_grade = students["Alice"]["grade"]
print(alice_grade)  # 输出:"A"# 修改嵌套字典中的元素
students["Bob"]["grade"] = "A"
print(students["Bob"])  # 输出:{'id': 2, 'grade': 'A'}

8.1 字典的嵌套定义

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

8.2 在字典中嵌套列表

pizza = {'crust': 'thick','toppings': ['mushrooms', 'extra cheese'],}# Summarize the order.
print(f"You ordered a {pizza['crust']}-crust pizza ""with the following toppings:")for topping in pizza['toppings']:print(f"\t{topping}")

8.3 将字典嵌套入列表

8.3.1 通过逐个定义将字典嵌套入列表

alien_0 = {'color': 'green', 'points': 5}
alien_1 = {'color': 'yellow', 'points': 10}
alien_2 = {'color': 'red', 'points': 15}aliens = [alien_0, alien_1, alien_2]for alien in aliens:print(alien)

8.3.2 通过循环将字典嵌套入列表

# Make an empty list for storing aliens.
aliens = []# Make 30 green aliens.
for alien_number in range(30):new_alien = {'color': 'green', 'points': 5, 'speed': 'slow'}aliens.append(new_alien)# Show the first 5 aliens.
for alien in aliens[:5]:print(alien)
print("...")# Show how many aliens have been created.
print(f"Total number of aliens: {len(aliens)}")

output

{‘color’: ‘yellow’, ‘points’: 10, ‘speed’: ‘medium’}
{‘color’: ‘yellow’, ‘points’: 10, ‘speed’: ‘medium’}
{‘color’: ‘yellow’, ‘points’: 10, ‘speed’: ‘medium’}
{‘color’: ‘green’, ‘points’: 5, ‘speed’: ‘slow’}
{‘color’: ‘green’, ‘points’: 5, ‘speed’: ‘slow’}

Total number of aliens: 30

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85720.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85720.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85720.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python】If 语句

1 使用if 进行条件判断 1.1 检查字符串是否相等 car bmw car BMW # FALSEcar bmw car.upper() BMW # true # 变小写用方法&#xff1a;lower1.2 检查字符串是否不相等 my_car yadeaif my_car ! Audi:print("Buy one! Buy one! Buy one!")1.3 比较数字 answe…

Knife4j 使用详解

一、概述 Knife4j 是一款基于 Swagger 的开源 API 文档工具&#xff0c;旨在为 Java 开发者提供更美观、功能更强大的 API 文档生成、展示和调试体验。它是 Swagger-Bootstrap-UI 的升级版&#xff0c;通过增强 UI 界面和扩展功能&#xff0c;解决了原生 Swagger UI 界面简陋、…

Java excel坐标计算

package com.common.base.util.excel;/*** excel 坐标计算*/ public class UtilExcelPosi {/*** deepseek生成 ExcelProperty(index UtilExcelPosi.pA)*/public final static int pA 0;public final static int pB 1;public final static int pC 2;public final static i…

【JavaWeb】Servlet+JSP 实现分页功能

文章目录 思路数据抽出功能设计 功能模块工具类前端内容用户端数据处理 思路 数据抽出 需要显示的数据&#xff0c;查询的数据抽出&#xff1b;进行分页显示&#xff0c;需要统计抽出的件数&#xff0c;然后根据页面显示尺寸调整显示页面内容&#xff1b; 功能设计 翻页需要…

SpringBoot-准备工作-工程搭建

目录 1.创建空项目 2.检查项目jdk版本 3.检查Maven的全局配置 4.配置项目的字符集 5.创建SpringBoot工程 1.创建空项目 2.检查项目jdk版本 3.检查Maven的全局配置 4.配置项目的字符集 5.创建SpringBoot工程

01、python实现matlab的插值算法,以及验证

import numpy as np from scipy.interpolate import griddata import sys def griddata_wrapper(x, y, v, xq, yq, method): """ 包装scipy的griddata函数,支持单个点或多个点的插值 """ try: # 将输入转换为numpy数组…

React ahooks——useRequest

目录 简介 1. 核心功能 2. 基本用法 3. 高级用法 &#xff08;1&#xff09;轮询请求&#xff08;Polling&#xff09; &#xff08;2&#xff09;防抖&#xff08;Debounce&#xff09; &#xff08;3&#xff09;依赖刷新&#xff08;refreshDeps&#xff09; &#x…

re正则、Xpath、BeautifulSouplxml 区别

目录 1. re 正则表达式2. XPath3. BeautifulSoup + lxml4. 功能特性对比5.对比与建议在网页数据解析中,正则表达式(re)XPath(常结合lxml)BeautifulSoup(常依赖解析器如lxml)是三种主流技术,各有核心差异和适用场景。 1. re 正则表达式 优势:文本匹配效率高,尤其适用于…

教师办工专用 资源包|课件+手抄报+PPT模板+常用表格 PDF格式93GB

如果家里亲戚或朋友有走上教育之路的人&#xff0c;给他这份整合可以减轻不少工作负担&#xff0c;更快地适应教育的节奏。也可以发给孩子的老师让他在平时做个班级活动的参考 《老师教学办工资源包》包括手抄报大全、教学计划、工作总结、培训手册、课程表等教学、办公常用资…

算法第37天| 完全背包\518. 零钱兑换 II\377. 组合总和 Ⅳ\57. 爬楼梯

完全背包 完全背包和01背包的区别 纯完全背包&#xff0c;遍历背包和物品的顺序是可以对调的&#xff0c;只要求得出最大价值&#xff0c;不要求凑成总和的元素的顺序&#xff1b; 01背包&#xff0c;遍历背包和物品的顺序是不可以对调的&#xff08;一维不行&#xff0c;二维…

七彩喜智慧康养平台:重构银发生活的数字守护网

随着社会老龄化程度的不断加深&#xff0c;如何让老年人安享幸福晚年成为社会关注的焦点。 在这一背景下&#xff0c;七彩喜智慧康养平台应运而生&#xff0c;以创新的科技手段和贴心的服务理念&#xff0c;为老年人的生活带来了诸多好处&#xff0c;发挥着重要作用&#xff0…

【设计模式】用观察者模式对比事件订阅(相机举例)

&#x1f4f7; 用观察者模式对比事件订阅(相机举例) 标签&#xff1a;WPF、C#、Halcon、设计模式、观察者模式、事件机制 在日常开发中&#xff0c;我们经常使用 事件机制&#xff08;Event&#xff09; 来订阅图像采集信号。然而当系统日益复杂&#xff0c;多个模块同时需要响…

【数据分析九:Association Rule】关联分析

一、数据挖掘定义 数据挖掘&#xff1a; 从大量的数据中挖掘那些令人感兴趣的、有用的、隐含的、先前未知的 和可能有用的 模式或知识 &#xff0c;并据此更好的服务人们的生活。 二、四类任务 数据分析有哪些任务&#xff1f; 今天我们来讲述其中的关联分析 三、关联分析 典…

AWS Security Hub邮件告警设置

问题 需要给AWS Security Hub设置邮件告警。 前提 已经启用AWS Security Hub。 AWS SNS 创建一个AWS Security Hub告警主题SecurityHub-Topic&#xff0c;如下图&#xff1a; 创建完成后&#xff0c;订阅该主题。 AWS EventBridge 设置规则名SecurityHubFindings-Rules…

(OSGB转3DTiles强大工具)ModelSer--强大的实景三维数据分布式管理平台

1. ModelSer 能帮我们做什么 1.1 最快速的 osgb 发布 3dtiles 服务 测试的速度大于 10G/分钟&#xff0c;且速度基本是线性的&#xff08;100G10分钟&#xff0c;1T100分钟&#xff09;。支持城市级倾斜数据半天内完成服务发布&#xff0c;并支持数据的单块更新。 1.2 支持所见…

《HTTP权威指南》 第5-6章 Web服务器和代理

基本Web服务器请求的步骤 1、建立连接 接受一个客户端连接&#xff0c;或者如果不希望与这个客户端建立连接&#xff0c;就将其关闭。 处理新连接客户端主机名识别&#xff1a;反向DNS查找&#xff0c;将IP地址转换为客户端主机名过ident确定客户端用户&#xff1a;客户端支持…

微信二次开发,对接智能客服逻辑

接口友情链接&#xff0c;点击即可访问。 ## 设备创建与复用机制 首次调用/login/getLoginQrCode需传空appId触发设备创建&#xff0c;响应返回固定设备ID。后续登录必须复用此ID以避免风控&#xff08;同一微信号绑定固定设备&#xff09;。设备类型可选ipad/mac&#xff0c;当…

网站并发访问量达到1万以上需要注意哪些事项

当网站并发访问量达到1万以上时&#xff0c;需要注意以下几个方面‌&#xff1a; ‌服务器硬件配置‌&#xff1a; ‌处理器&#xff08;CPU&#xff09;‌&#xff1a;选择多核、高频率的CPU&#xff0c;以确保服务器能够高效地处理大量的请求。‌内存&#xff08;RAM&#xf…

二、OpenCV的第一个程序

文章目录 一、第一个程序&#xff1a;显示图片1.1 cv::imread1.2 cv::namedWindow1.3 cv::imshow 二、第二个程序&#xff1a;视频2.1 cv::VideoCapture 三、加入了滑动条的基本浏览窗口 一、第一个程序&#xff1a;显示图片 示例&#xff1a;一个简单的加载并显示图像的OpenC…

第14次:商品列表、热销商品及详情

第1步&#xff1a;定义获取商品列表的视图类ListView&#xff0c;本视图中完成了如下功能&#xff1a; 根据商品类别id获取商品类别信息&#xff0c;并根据类别信息反向查询到所有的该类别的商品。根据页号和排序方式两个参数&#xff0c;获取某个页面的商品列表信息。 #good…