python 之字典的相关知识

news2024/10/7 20:31:16

文章目录

      • 字典的基本特点:
        • 1. 定义
        • 2. 键唯一性
        • 3. 可变性
        • 4. 键的类型
      • 基本操作:
      • 字典的创建
      • 1. 花括号 `{}`
      • 2. dict() 构造函数
      • 3. 键值对的 dict() 构造函数
      • 使用 `zip()` 函数创建字典:
      • 注意事项
        • 访问字典中的值
        • 修改和添加键值对
        • 删除键值对
      • 字典方法:
      • 总结:
      • 1. `clear()`
      • 2. `copy()`
      • 3. `get()`
      • 4. `items()`
      • 5. `keys()`
      • 6. `values()`
      • 7. `pop()`
      • 8. `popitem()`
      • 9. `update()`

在这里插入图片描述

字典(Dictionary)是 Python 中的一种数据结构,它以键-值对的形式存储数据。字典是无序的,通过键来访问和存储数据,而不是通过索引。

字典的基本特点:

1. 定义

字典使用花括号 {} 定义,每个键值对之间使用逗号 , 分隔。键和值之间使用冒号 : 分隔。

my_dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
2. 键唯一性
  • 字典中的键是唯一的,不允许重复。如果出现重复键,后面的键值对会覆盖前面的。
my_dict = {'key1': 'value1', 'key1': 'new_value1'}
print(my_dict)  # 输出: {'key1': 'new_value1'}
3. 可变性
  • 字典是可变的,可以随时添加、删除或修改键值对。
4. 键的类型
  • 字典的键可以是不可变类型(如整数、字符串、元组等),但不能是可变类型(如列表、集合等)。

基本操作:

字典的创建

在 Python 中,有多种方法可以创建字典。以下是常用的创建字典的方式:

1. 花括号 {}

使用花括号 {} 来创建字典,键值对之间用冒号 : 分隔,每个键值对之间用逗号 , 分隔。

my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

2. dict() 构造函数

使用 dict() 构造函数来创建字典,可以从包含键值对的序列(如元组的列表)或者其他字典创建新字典。

  • 从包含键值对的序列创建:
my_dict = dict([('name', 'Alice'), ('age', 30), ('city', 'New York')])

3. 键值对的 dict() 构造函数

使用 dict() 构造函数并以关键字参数形式传递键值对。

my_dict = dict(name='Alice', age=30, city='New York')



对的,zip() 函数也可以用于创建字典。zip() 函数能够将多个可迭代对象打包成元组序列,并将其合并为一个字典。一般来说,zip() 会将第一个可迭代对象的元素作为键,第二个可迭代对象的元素作为值。

使用 zip() 函数创建字典:

keys = ['name', 'age', 'city']
values = ['Alice', 30, 'New York']

my_dict = dict(zip(keys, values))
print(my_dict)  # 输出: {'name': 'Alice', 'age': 30, 'city': 'New York'}

这里,zip() 函数将 keysvalues 打包成元组序列,然后 dict() 函数将这些元组转换为字典。这种方法特别适合将两个列表的元素对应起来创建字典。

注意事项

  • 键必须是不可变类型(如整数、字符串、元组),但值可以是任意类型。
  • 如果使用相同的键创建字典,后面的键值对会覆盖之前的键值对。

以上是创建字典的几种常见方法,根据实际需求和数据类型,选择最适合的方法来创建字典。

访问字典中的值
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

print(my_dict['name'])  # 输出: 'Alice'
print(my_dict.get('age'))  # 输出: 30
修改和添加键值对
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

# 修改值
my_dict['age'] = 31

# 添加新键值对
my_dict['gender'] = 'Female'
删除键值对
my_dict = {'name': 'Alice', 'age': 30, 'city': 'New York'}

del my_dict['age']  # 删除 'age' 键值对

my_dict.pop('city')  # 删除 'city' 键值对

字典方法:

  • keys():返回字典中所有键的视图。
  • values():返回字典中所有值的视图。
  • items():返回字典中所有键值对的元组视图。
  • update():将一个字典的键值对更新到另一个字典。
  • clear():清空字典中的所有元素。

总结:

字典是一种非常有用的数据结构,特别适合用于键值对的存储和快速检索。了解字典的特点、基本操作以及常用方法可以让你更好地利用它来组织和管理数据。

当操作 Python 字典时,可以使用多种方法来进行检索、添加、删除或修改键值对。下面是一些常用的字典方法以及它们的作用:

1. clear()

  • 作用:清空字典中的所有元素。

示例

my_dict = {'name': 'Alice', 'age': 30}
my_dict.clear()
print(my_dict)  # 输出: {}

2. copy()

  • 作用:返回字典的浅拷贝。

示例

my_dict = {'name': 'Alice', 'age': 30}
new_dict = my_dict.copy()

3. get()

  • 作用:获取指定键的值,如果键不存在则返回默认值。

示例

my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.get('age'))  # 输出: 30
print(my_dict.get('gender', 'Not specified'))  # 输出: 'Not specified'

4. items()

  • 作用:返回一个包含所有键值对元组的视图。

示例

my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.items())  # 输出: dict_items([('name', 'Alice'), ('age', 30)])

5. keys()

  • 作用:返回包含字典所有键的视图。

示例

my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.keys())  # 输出: dict_keys(['name', 'age'])

6. values()

  • 作用:返回包含字典所有值的视图。

示例

my_dict = {'name': 'Alice', 'age': 30}
print(my_dict.values())  # 输出: dict_values(['Alice', 30])

7. pop()

  • 作用:删除指定键并返回其对应的值,如果键不存在则返回默认值。

示例

my_dict = {'name': 'Alice', 'age': 30}
value = my_dict.pop('age')
print(value)  # 输出: 30

8. popitem()

  • 作用:随机删除并返回一个键值对元组(通常是末尾键值对)。

示例

my_dict = {'name': 'Alice', 'age': 30}
item = my_dict.popitem()
print(item)  # 输出: ('age', 30)

9. update()

  • 作用:将一个字典的键值对更新到另一个字典。

示例

dict1 = {'name': 'Alice', 'age': 30}
dict2 = {'gender': 'Female'}

dict1.update(dict2)
print(dict1)  # 输出: {'name': 'Alice', 'age': 30, 'gender': 'Female'}

这些方法能够让你对字典进行各种操作,包括获取键、值、键值对,删除元素,清空字典,以及合并字典等。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

平衡树相关笔记

引入 二叉查找树 二叉查找树(Binary Search Tree),又名二叉搜索树。满足以下性质: 对于非空的左子树,左子树点权值小于根节点。对于非空的右子树,左子树点权值大于根节点。二叉查找树的左右子树均是二叉…

Android修行手册 - 模板匹配函数matchTemplate详解,从N张图片中找到是否包含五星

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

麒麟v10 安装jenkins

1.想安装哪个版本? https://pkg.jenkins.io/redhat-stable/ 我们查看我们想要哪个版本: 4年前安装的是 Jenkins2.279 版本 现在在docker 上安装的是Version 2.425 版本 2.碰到到的问题 1.安装老版本的Jenkins,会出现安装的插件不兼容&…

win版redis详细安装教程

一、下载 github下载地址 https://github.com/MicrosoftArchive/redis/releases 可选择:下载msi包或zip压缩包 这里我选择的是zip压缩包,直接通过cmd命令窗口操作即可。 二、安装步骤 1、解压Redis压缩包 选中压缩包,右键选择解压&#…

WordPress 主题QUX DUX加强版

模板简介: QUX主题是由轻语博客在大前端DU主题的基础上集成了Ucenter&Market插件后修改加强版,在原有主题的基础上迎合市场增加了很多的功能。主题已解密去授权。 更新内容: 新增关闭注册验证码(主题设置–会员中心&#xff…

【黑马程序员】SpringCloud——微服务

文章目录 前言一、服务架构演变1. 单体架构2. 分布式架构2.1 服务治理 3. 微服务3.1 微服务结构3.2 微服务技术对比3.3 企业需求 二、SpringCloud兼容性 三、服务拆分及远程调用1. 服务拆分1.1 服务拆分注意事项1.2 导入服务拆分 Demo 2. 远程调用2.1 根据订单 id 查询订单功能…

2023年10月CSDN客服月报|解决9个重大问题、12个次要问题、12个一般问题,处理5个用户需求

听用户心声,解用户之需。hello,大家好,这里是《CSDN客诉报告》第25期,接下来就请大家一同回顾我们10月份解决的bug~ 一、重大问题 1、全站无法访问 反馈量:90问题原因:DDOS攻击具体表现&…

day3 ARM

【昨日作业】 .text .global start _start: mov r0,#0 存放sum mov r1,#1 存放相加的数值 loop: cmp r1,#100 bhi wh add r0,r0,r1 add r1,r1,#1 b loop wh: b wh .end 【内存读写指令】 通过内存读写指令可以实现向内存中写入指定数据或者读取指定内存地址的数据 c语言内存…

【Python3】【力扣题】231. 2 的幂

【力扣题】题目描述&#xff1a; 此题&#xff1a;n为整数&#xff08;32位有符号整数&#xff09;&#xff0c;x为整数。 2 的幂次方都大于0。若幂为负数&#xff0c;则0<n<1&#xff0c;n不为整数。 因此&#xff0c;n为正整数&#xff0c;x为0和正整数。 若二进制表示…

学为贵雅思写作备考

准确通顺&#xff0c;言之有物 两次读不懂&#xff0c;6分以下&#xff0c; 6分没有印象&#xff0c;味同嚼蜡&#xff0c;但是没错&#xff08;书面语过关&#xff09; 英语比较过关 8-9分&#xff0c;很有见地 6-7单个的句子读得懂&#xff0c;前后是贯通的、逻辑是通顺…

决策式AI与生成式AI

人工智能中深度学习&#xff0c;是一种受人脑的生物神经网络机制启发&#xff0c;并模仿人脑来解释、处理数据的机器学习技术&#xff0c;它能自动对数据进行特征提取、识别、决策和生成。它可以从不同的维度进行划分&#xff0c;如果按模型的特点来划分可分为决策式AI和生成式…

open clip论文阅读摘要

看下open clip论文 Learning Transferable Visual Models From Natural Language Supervision These results suggest that the aggregate supervision accessible to modern pre-training methods within web-scale collections of text surpasses that of high-quality crowd…

我的AIGC部署实践02

我的AIGC部署实践02 上次的教程我们实现了在趋势云平台上创建项目并运行对应的代码。虽然有比较好的结果&#xff0c;不过很多时候我们往往需要根据自己的需要更改代码&#xff0c;那么代码运行及部署的流程是怎么样的呢&#xff1f;让我们继续往下看吧。 1.学习准备 官方代码…

测试工程师面试攻略:教你如何描述项目经验

俗话说的好&#xff0c;知己知彼百战百胜。项目经验说的好不好&#xff0c;直接决定了你值多少钱。满满的干货&#xff0c;先三连再耐心看完。 去面试之前&#xff0c;建议大家把简历写得从业经历和项目经验熟练的背下来&#xff0c;能说出项目经验里的详细的测试情况最好。 一…

工程(十三)——基于激光视觉的SLAM三维重建

博主创建了一个科研互助群Q&#xff1a;772356582&#xff0c;欢迎大家加入讨论。这是一个科研互助群&#xff0c;主要围绕机器人&#xff0c;无人驾驶&#xff0c;无人机方面的感知定位&#xff0c;决策规划&#xff0c;以及论文发表经验&#xff0c;以方便大家很好很快的科研…

了解企业邮箱的外观和功能特点

企业邮箱是什么样子的&#xff1f;企业邮箱不是单一产品&#xff0c;而是由一系列电子邮件服务组成的生态系统。这些服务包括但不限于邮件服务器、客户端、安全解决方案等。这些服务共同构成了企业邮箱的基础设施。 在外观上&#xff0c;企业邮箱和个人邮箱没有太大区别。用户通…

查询优化器:RBO与CBO

SQL查询优化器 1、数据库系统发展简史2、SQL查询优化器3、查询优化器分类4、查询优化器执行过程5、CBO框架Calcite简介 1、数据库系统发展简史 数据库系统诞生于20世纪60年代中期&#xff0c;至今已有近50多年的历史&#xff0c;其发展经历了三代演变&#xff0c;造就了四位图灵…

6个机器学习可解释性框架

1、SHAP SHapley Additive explanation (SHAP)是一种解释任何机器学习模型输出的博弈论方法。它利用博弈论中的经典Shapley值及其相关扩展将最优信贷分配与局部解释联系起来. 举例&#xff1a;基于随机森林模型的心脏病患者预测分类 数据集中每个特征对模型预测的贡献由Shap…

Vscode禁止插件自动更新

由于电脑的vscode版本不是很新。2022.10月份的版本1.7.2&#xff0c;电脑vscode的python插件装的也是2022年4月份的某个版本&#xff0c;但插件经常自动更新&#xff0c;导致python代码无法Debug,解决办法&#xff1a; 点设置&#xff0c;搜autoUpdate, 把红色框选成无

浅析刚入门Python初学者的注意事项

文章目录 一、注意你的Python版本1.print()函数2.raw_input()与input()3.比较符号&#xff0c;使用!替换<>4.repr函数5.exec()函数 二、新手常遇到的问题1、如何写多行程序&#xff1f;2、如何执行.py文件&#xff1f;3、and&#xff0c;or&#xff0c;not4、True和False…