首页 > 其他分享 >一篇文章理解字典

一篇文章理解字典

时间:2025-01-07 14:58:58浏览次数:3  
标签:一篇 age dict 文章 键值 字典 my name

Python 3 字典详解

字典(dict)是 Python 中的一种内置数据类型,用于存储键值对(key-value pairs)。它是一个无序、可变且唯一的集合,键必须是不可变类型(如字符串、数字、元组),而值可以是任意类型。


1. 字典的基本特点

  • 无序性:从 Python 3.7 起,字典的插入顺序被保留(即按照插入顺序遍历),但理论上仍被视为无序。
  • 键唯一性:字典中的键是唯一的,如果赋值给已存在的键,新值会覆盖旧值。
  • 键的不可变性:键必须是不可变类型(如字符串、数字、元组),而值可以是任意类型。

2. 字典的创建

方式一:用花括号创建

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

方式二:用 dict() 构造函数

my_dict = dict(name="Alice", age=25, city="New York")

方式三:用键值对元组的列表创建

my_dict = dict([("name", "Alice"), ("age", 25), ("city", "New York")])

方式四:用字典推导式

squared = {x: x**2 for x in range(1, 6)}  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

3. 字典的操作

3.1 访问元素

my_dict = {"name": "Alice", "age": 25}
print(my_dict["name"])  # 输出: Alice

注意:如果键不存在,my_dict["key"] 会抛出 KeyError
推荐使用 dict.get() 方法:

print(my_dict.get("gender", "Not Found"))  # 输出: Not Found

3.2 添加/修改元素

my_dict["gender"] = "Female"  # 添加键值对
my_dict["age"] = 26          # 修改值

3.3 删除元素

my_dict.pop("age")       # 删除键 "age",返回值为 25
del my_dict["name"]      # 删除键 "name"
my_dict.clear()          # 清空字典

4. 字典的方法

方法描述
dict.get(key[,default])返回键对应的值,如果键不存在,返回默认值(默认为 None)。
dict.keys()返回字典中所有键的视图。
dict.values()返回字典中所有值的视图。
dict.items()返回字典中所有键值对的视图(返回键值对元组的迭代器)。
dict.update(other_dict)将另一个字典 other_dict 的键值对合并到当前字典中(覆盖重复键)。
dict.pop(key[,default])删除并返回指定键的值,如果键不存在,返回默认值;如果未提供默认值则抛出 KeyError
dict.popitem()删除并返回字典中的最后一个键值对(Python 3.7+ 遵循插入顺序)。
dict.setdefault(key[,default])如果键存在,返回其对应的值;否则设置该键值为 default 并返回该值。
dict.fromkeys(iterable[,value])创建一个新字典,以可迭代对象的元素为键,默认值为 None 或指定值。

5. 遍历字典

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

# 遍历键
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}")

6. 字典的嵌套

字典可以嵌套,即值本身可以是另一个字典:

nested_dict = {
    "person1": {"name": "Alice", "age": 25},
    "person2": {"name": "Bob", "age": 30},
}

print(nested_dict["person1"]["name"])  # 输出: Alice

7. 字典与其他数据结构的转换

  • 列表转字典
pairs = [("name", "Alice"), ("age", 25)]
my_dict = dict(pairs)
  • 字典转列表
keys_list = list(my_dict.keys())
values_list = list(my_dict.values())

8. 应用场景

  1. 快速查找:基于键的 O(1) 平均时间复杂度。
  2. 数据映射:适用于描述属性和值的关系。
  3. 统计计数:如使用 collections.Counter
  4. 缓存:如实现简单的键值缓存系统。

了解和熟练使用字典,将极大提升 Python 编程的效率和灵活性!

标签:一篇,age,dict,文章,键值,字典,my,name
From: https://blog.csdn.net/2401_88186301/article/details/144899185

相关文章

  • 2025年测试用例管理看这一篇就够了 ----Codes 开源免费、全面的测试管理解决方案
    1、前言Codes是国内首款重新定义SaaS模式的开源项目管理平台,支持云端认证、本地部署、全部功能开放,并且对30人以下团队免费。它通过整合迭代、看板、度量和自动化等功能,简化测试协同工作,使敏捷测试更易于实施。并提供低成本的敏捷测试解决方案,如同步在线离线测试用例、流程......
  • 我的第一篇博客——勉励自己
    在一个奇怪的时间节点,我开始我的第一篇博客的编辑。(我也不知道我为什么要在24年年末这一天开启我的博客计划)首先,先介绍下自己,我是一名软件工程专业的大三学生,从最近开始着手准备26届秋招(2025年9.10月份),前一阵找辅导员面谈过,才知道早早的就要开始准备了,狠狠地被信息差了。所以......
  • 一篇文章带你学会css中的伪类和伪元素
    我们在写页面的时候,为了美化页面,肯定会使用css样式进行美化,美化的过程中我们会经常使用伪类和伪元素,接下来来说说这两者的定义,常见的使用,在什么场景使用,二者有有什么区别一、伪类(1)定义“伪类主要用于定义元素的特殊状态。它们不是类,而是表示了元素处于特定状态时的样式变化......
  • 黑客入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    一、什么是网络安全网络安全可以基于攻击和防御视角来分类,我们经常听到的“红队”、“渗透测试”等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性,例如Web安全技术,既有Web渗透,......
  • 网络安全就业前景怎么样?有哪些岗位?好找工作吗?零基础入门到精通,收藏这一篇就够了
    众所周知,网络安全与我们息息相关,无论是企业还是个人都应该重视网络安全。而且网络安全是一个新兴行业,人才需求量远大于供给,因此在薪资福利上具有很大的优势,但对于初学者而言,很多人依然担心前景问题,那么网络安全就业前景如何?本文为大家介绍一下。从目前市场情况来讲,网络安全......
  • 一篇文章讲清楚flex布局!
    ‌Flex布局(FlexibleBoxLayout),简称“弹性布局”,是一种灵活且强大的CSS布局方式,旨在提供一种更有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间‌。‌Flex布局的基本概念Flex布局由Flex容器(flexcontainer)和Flex项目(flexitem)组成。采用Flex布局的元素称为Fle......
  • 直播电商运营工具如何选?看这一篇就够了
    近年来,直播电商迅速崛起,成为电商行业的新风口。无论是头部主播还是中小商家,都希望通过直播带货实现销售增长。然而,随着市场竞争的加剧,直播电商的运营难度也在不断增加。商家们面临着选品、数据分析、用户互动、流量获取等多重挑战。如何高效管理直播流程、精准分析数据、优化用户......
  • 2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了
    “打造一款模型是一件非常复杂的事情,设计的问题也非常非常多,因此大家要做好心理准备”这段时间写的文章主要都在讲大模型的应用问题,以及自己在工作中遇到的一些问题;而今天我们就从大模型服务的角度,来思考一下打造一款大模型需要经过哪些步骤,也就是怎么打造一款大模型。......
  • 分享2025黑客最常用的10款黑客工具,收藏这一篇就够了
    前言以下所有这些工具都是捆绑在一起的Linux发行版,如KaliLinux或BackBox,建议安装一个合适的Linux黑客系统,尤其是因为这些黑客工具可以(自动)更新。1、Metasploit(渗透测试软件,免费与付费)漏洞利用工具MetasploitFramework(MSF)是一款开源安全漏洞检测工具,附带数千个已知......
  • 【2024最新】渗透测试工具大全(超详细),收藏这一篇就够了!
     黑客/网安大礼包:......