Python零基础超详细教程:字典(Dictionary)相关介绍使用

news2025/1/20 1:11:07

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

Python字典是另一种可变容器模型,

且可存储任意类型对象,如字符串、数字、元组等其他容器模型。

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

一、创建字典

字典由键和对应值成对组成。字典也被称作关联数组或哈希表。基本语法如下:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此创建字典

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }

注意:

  1. 每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。

  2. 键必须独一无二,但值则不必。

  3. 值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。

二、访问字典里的值

把相应的键放入熟悉的方括弧,如下实例:

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])
# 以上实例输出结果:
# dict['Name']: Zara
# dict['Age']: 7

如果用字典里没有的键访问数据,会输出错误如下:

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print ("dict['Alice']: ", dict['Alice'])

以上实例输出结果:

#KeyError: 'Alice'

三、修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
 
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry 
  
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

以上实例输出结果:

dict['Age']: 8
dict['School']: DPS School

四、删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
 
del dict['Name'] # 删除键是'Name'的条目
dict.clear()  # 清空词典所有条目
del dict   # 删除词典
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
#但这会引发一个异常,因为用del后字典不再存在:
dict['Age']:

五、字典键的特性

字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
 
print ("dict['Name']: ", dict['Name'])
#以上实例输出结果:
#dict['Name']: Manni

2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行,如下实例:

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
dict = {['Name']: 'Zara', 'Age': 7}
 
print ("dict['Name']: ", dict['Name'])
#以上实例输出结果:
#TypeError: list objects are unhashable

六、字典内置函数&方法

Python字典包含了以下内置函数:

  1. cmp(dict1, dict2) #比较两个字典元素。

  2. len(dict) #计算字典元素个数,即键的总数。

  3. str(dict) #输出字典可打印的字符串表示。

  4. type(variable) #返回输入的变量类型,如果变量是字典就返回字典类型。

Python字典包含了以下内置方法:

  1. radiansdict.clear() #删除字典内所有元素

  2. radiansdict.copy() #返回一个字典的浅复制

  3. radiansdict.fromkeys() #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

  4. radiansdict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值

  5. radiansdict.has_key(key) #如果键在字典dict里返回true,否则返回false

  6. radiansdict.items() #以列表返回可遍历的(键, 值) 元组数组

  7. radiansdict.keys() #以列表返回一个字典所有的键

  8. radiansdict.setdefault(key, default=None) #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default

  9. radiansdict.update(dict2) #把字典dict2的键/值对更新到dict里

  10. radiansdict.values() #以列表返回字典中的所有值

七、字典练习代码

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
print('''|---欢迎进入通讯录程序---|
|---1、 查询联系人资料---|
|---2、 插入新的联系人---|
|---3、 删除已有联系人---|
|---4、 退出通讯录程序---|''')
addressBook={}#定义通讯录
while 1:
 temp=input('请输入指令代码:')
 if not temp.isdigit():
  print("输入的指令错误,请按照提示输入")
  continue
 item=int(temp)#转换为数字
 if item==4:
  print("|---感谢使用通讯录程序---|")
  break
 name = input("请输入联系人姓名:")
 if item==1:
  if name in addressBook:
   print(name,':',addressBook[name])
   continue
  else:
   print("该联系人不存在!")
 if item==2:
  if name in addressBook:
   print("您输入的姓名在通讯录中已存在-->>",name,":",addressBook[name])
   isEdit=input("是否修改联系人资料(Y/N):")
   if isEdit=='Y':
    userphone = input("请输入联系人电话:")
    addressBook[name]=userphone
    print("联系人修改成功")
    continue
   else:
    continue
  else:
   userphone=input("请输入联系人电话:")
   addressBook[name]=userphone
   print("联系人加入成功!")
   continue
 
 if item==3:
  if name in addressBook:
   del addressBook[name]
   print("删除成功!")
   continue
  else:
   print("联系人不存在")

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

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

相关文章

高数刷题笔记

任取一米奚落>0,存在德尔塔...&#xff0c;0<|x-x0|<德尔塔 不同点是这个不是|x-x0|趋近与哪一个小范围&#xff0c;而是x趋近与大范围 极限的本质就是逼近&#xff0c;二者都是在确定要逼近到什么程度&#xff01;&#xff01;&#xff01; 放缩 我们要凑出|x-x0|的…

python技术面试题合集(二)

python技术面试题 1、简述django FBV和CBV FBV是基于函数编程&#xff0c;CBV是基于类编程&#xff0c;本质上也是FBV编程&#xff0c;在Djanog中使用CBV&#xff0c;则需要继承View类&#xff0c;在路由中指定as_view函数&#xff0c;返回的还是一个函数 在DRF中的使用的就是…

docker笔记3 Docker常规安装

1.安装tomcat docker hub上面查找tomcat镜像 docker search tomcat 从docker hub上拉取tomcat镜像到本地 docker pull tomcat docker images查看是否有拉取到的tomcat 使用tomcat镜像创建容器实例(也叫运行镜像) docker run -it -p 8080:8080 tomcat -p 小写&#xff0c;主…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书杭州师范大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书杭州师范大学图书馆

MySQL访问和配置

目录 1.使用MySQL自带的客户端工具访问 2.使用DOS访问(命令行窗口WinR → cmd) 3.连接工具&#xff08;SQLyog或其它&#xff09; MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 1.使用MySQL自…

AMEYA360代理 | 佰维eMMC、LPDDR存储芯片赋能电视终端流畅体验

5G、AI、VR、AR等技术的发展&#xff0c;助推智能电视、机顶盒等电视终端成为智能家居领域不可忽视的重要设备。随着4K超高清(UHD)技术、虚拟现实技术(VR)和增强现实技术(AR)的普及&#xff0c;并向8K超高清技术不断渗透&#xff0c;电视终端将可以为消费者提供更清晰的视觉体验…

解决DCNv2不能使用高版本pytorch编译的问题

可变形卷积网络GitHub - CharlesShang/DCNv2: Deformable Convolutional Networks v2 with Pytorch代码已经出来好几年了&#xff0c;虽然声称"Now the master branch is for pytorch 1.x"&#xff0c;实际上由于pytorch自1.11版开始发生了很大变化&#xff0c;原来基…

时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测

时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测 目录 时序预测 | MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-GRU时间卷积门控循环单元时间序列预测&#xff1b; 2.运行环…

精益创业的规划框架:愿景,战略,产品

精益创业的规划框架&#xff1a;愿景&#xff0c;战略&#xff0c;产品【安志强趣讲276期】 趣讲大白话&#xff1a;愿景管战略&#xff0c;战略管产品 **************************** 愿景&#xff1a;创业企业有个清晰的方向 愿景怎么来的&#xff1f;发现社会问题&#xff0c…

electron笔记无边框窗口、DLL调用、DLL函数返回指针

无边框 const win new BrowserWindow({width: 1290,height: 736,minHeight: 736,minWidth: 1040,maxHeight: 736,maxWidth: 1290,frame: false, // 无边框webPreferences: {// preload: process.env.WEBPACK_DEV_SERVER_URL ? __dirname /preload.js : app://./preload.js,…

leetcode172. 阶乘后的零(java)

阶乘后的零 题目描述巧妙的解法代码演示 上期经典 题目描述 难度 - 中等 172. 阶乘后的零 给定一个整数 n &#xff0c;返回 n! 结果中尾随零的数量。 提示 n! n * (n - 1) * (n - 2) * … * 3 * 2 * 1 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;0 解释&#…

【算法刷题-栈与队列篇】

目录 1.leetcode-232. 用栈实现队列2.leetcode-225. 用队列实现栈3.leetcode-20. 有效的括号&#xff08;1&#xff09;代码1&#xff08;2&#xff09;代码2 4.leetcode-1047. 删除字符串中的所有相邻重复项5.leetcode-150. 逆波兰表达式求值6.leetcode-239. 滑动窗口最大值7.…

C盘清理 “ProgramData\Microsoft\Search“ 文件夹过大

修改索引存放位置 进入控制面板->查找方式改成大图标&#xff0c; 选择索引选项 进入高级 填写新的索引位置 删除C盘索引信息 删除C:\ProgramData\Microsoft\Search\Data\Applications 下面的文件夹 如果报索引正在使用&#xff0c;参照第一步替换索引位置。关闭索引

【conan】c++包管理工具,conan教程

文章目录 介绍Build a simple CMake project using ConanUsing build tools as Conan packagesBuilding for multiple configurations:Release, Debug, Static and Shared 修改Conan profile&#xff0c;达到自己的编译目的Understanding the flexibility of using conanfile.p…

内网穿透神器-frp的概念,搭建和使用,方便访问内网服务

FRP概念 FRP是什么(借助官网的描述)&#xff1f; frp 是一个专注于内网穿透的高性能的反向代理应用&#xff0c;支持 TCP、UDP、HTTP、HTTPS 等多种协议&#xff0c;且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 为什么是用FR…

【斗破】魔兽山脉回归,彩鳞牵手手萧炎老公,小医仙大战美杜莎

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析【斗破苍穹年番】 斗破苍穹年番动画更新了&#xff0c;云岚宗正式解散&#xff0c;云韵道别&#xff0c;携手纳兰嫣然闯荡中州&#xff0c;而萧炎联合海老&#xff0c;也创立了加玛帝国第一势力炎盟&#xff0c;有了保护萧…

DRM全解析 —— ADD_FB(2)

接前一篇文章&#xff1a;DRM全解析 —— ADD_FB&#xff08;1&#xff09; 本文参考以下博文&#xff1a; DRM驱动&#xff08;四&#xff09;之ADD_FB 特此致谢&#xff01; 上一回围绕libdrm与DRM在Linux内核中的接口&#xff1a; DRM_IOCTL_DEF(DRM_IOCTL_MODE_ADDFB, d…

Linux驱动之Linux自带的LED灯驱动

目录 一、简介 二、使能Linux自带LED驱动 三、Linux内核自带LED驱动框架 四、设备树节点编写 五、运行测试 一、简介 前面我们都是自己编写 LED 灯驱动&#xff0c;其实像 LED 灯这样非常基础的设备驱动&#xff0c; Linux 内核已经集成了。 Linux 内核的 LED 灯驱动采用 …

Qt Creator 创建 Qt 默认窗口程序

Qt 入门实战教程&#xff08;目录&#xff09; Windows Qt 5.12.10下载与安装 使用Qt Creator 本文介绍用Qt自带的集成开发工具Qt Creator创建Qt默认的窗口程序。 本文不需要你另外安装Visual Studio 2022这样的集成开发环境&#xff0c;也不需要你再在Visual Studio 2022中…

OJ练习第159题——消灭怪物的最大数量

消灭怪物的最大数量 力扣链接&#xff1a;1921. 消灭怪物的最大数量 题目描述 你正在玩一款电子游戏&#xff0c;在游戏中你需要保护城市免受怪物侵袭。给你一个 下标从 0 开始 且长度为 n 的整数数组 dist &#xff0c;其中 dist[i] 是第 i 个怪物与城市的 初始距离&#…