python3—字典(dict)

2023-05-16

目录

      • 1.字典的描述
      • 2.访问字典里的值
      • 3.修改字典
      • 4.删除字典元素
      • 5.字典键的特性
      • 6.字典内置函数&方法

1.字典的描述

字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
创建字典:

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
print(type(dict1),type(dict2))

在这里插入图片描述

2.访问字典里的值

把相应的键放入到方括号中,如下实例:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])

在这里插入图片描述

3.修改字典

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

dict3 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict3['Age'] = 8  # 更新 Age
dict3['School'] = "westos"  # 添加信息
print("dict3:",dict3)

在这里插入图片描述

4.删除字典元素

能删单一的元素也能清空字典,清空只需一项操作。
显示删除一个字典用del命令,如下实例:

dict4 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict4['Name']  # 删除键 'Name'
print(dict4)
dict4.clear()  # 清空字典
print(dict4)
del dict4  # 删除字典

在这里插入图片描述

5.字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

dict5 = {'Name': 'Runoob', 'Age': 7, 'Name': 'westos'}
print("dict5: ", dict5)

在这里插入图片描述
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

dict6= {['Name']: 'westos', 'Age': 7}
print("dict6['Name']: ", dict['Name'])

在这里插入图片描述

6.字典内置函数&方法

内置函数描述
len(dict)计算字典元素个数,即键的总数
str(dict)输出字典,以可以打印的字符串表示
type(variable)返回输入的变量类型,如果变量是字典就返回字典类型
内置方法描述语法
radiansdict.clear()删除字典内所有元素dict.clear()
radiansdict.copy()返回一个字典的浅复制dict.copy()
radiansdict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值dict.fromkeys(seq[, value])
radiansdict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值dict.get(key, default=None)
key in dict如果键在字典dict里返回true,否则返回falsekey in dict
radiansdict.items()以列表返回可遍历的(键, 值) 元组数组dict.items()
radiansdict.keys()返回一个迭代器,可以使用 list() 来转换为列表dict.keys()
radiansdict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,将会添加键并将值设为defaultdict.setdefault(key, default=None)
radiansdict.update(dict2)把字典dict2的键/值对更新到dict里dict.update(dict2)
radiansdict.values()返回一个迭代器,可以使用 list() 来转换为列表dict.values()
pop(key[,default])删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值pop(key[,default])
popitem()随机返回并删除字典中的最后一对键和值popitem()

实例1:

dict = {'Name': 'Zara', 'Age': 7}
print ("字典长度 : " ,len(dict))
dict.clear()     #清空字典
print ("字典删除后长度 :" ,len(dict))
dict1 = {'Name': 'zengxin', 'Age': 7, 'Class': 'First'}
dict2 = dict1.copy()   #复制字典
print("新复制的字典为 : ", dict2)
seq = ('name', 'age', 'sex')
dict3 = dict.fromkeys(seq)    #以序列 seq 中元素做字典的键
print("新的字典为 : %s" % str(dict3))
dict3 = dict.fromkeys(seq, 10) #以序列 seq 中元素做字典的键,初始值为10
print("新的字典为 : %s" % str(dict3))
dict4 = {'Name': 'Runoob', 'Age': 27}
print ("Age 值为 : %s" %  dict4.get('Age'))  #get方法返回指定键的值,如果值不在字典中返回默认值 None
print ("Sex 值为 : %s" %  dict4.get('Sex', "NA"))
print("dict4:",dict4)
print("不存在建的指:",dict4.get('school'))

在这里插入图片描述
实例2:

dict = {'Name': 'Runoob', 'Age': 7}
# 检测键 Age 是否存在
if 'Age' in dict:
    print("键 Age 存在")
else:
    print("键 Age 不存在")
# 检测键 Sex 是否存在
if 'Sex' in dict:
    print("键 Sex 存在")
else:
    print("键 Sex 不存在")
# not in
# 检测键 Age 是否存在
if 'Age' not in dict:
    print("键 Age 不存在")
else:
    print("键 Age 存在")

在这里插入图片描述
实例3:

dict = {'Name': 'Runoob', 'Age': 7}
print("Value : " ,dict.items()) #以列表形式返回字典
for i,j in dict.items():
    print(i, ":\t", j)  #遍历
d={1:"a",2:"b",3:"c"}
result=[]
for k,v in d.items(): #将字典的 key 和 value 组成一个新的列表:
    result.append(k)
    result.append(v)
print(result)

在这里插入图片描述
实例4:

dict = {'Name': 'Runoob', 'Age': 7}
print(dict.keys())
list1=list(dict.keys())  #转换为列表
print(list1)
dict2 = {'Name': 'Runoob', 'Age': 7}
print("Age 键的值为 : %s" % dict2.setdefault('Age'))
print("Sex 键的值为 : %s" % dict2.setdefault('Sex', 'girl'))
print("新字典为:", dict2)

在这里插入图片描述
实例5:

dict = {'Name': 'Runoob', 'Age': 7}
dict2 = {'Sex': 'female'}
dict.update(dict2)
print("更新字典 dict : ", dict)
dict3 = {'Sex': 'female', 'Age': 7, 'Name': 'Zara'}
print("字典3所有值为 : ", list(dict3.values()))
site= {'name': 'westos', 'alexa': 10000, 'url': 'www.runoob.com'}
pop_obj=site.pop('name')
print("被删除后的site:",site)
print("被删除的值:",pop_obj)
weekdays = ['Monday','Tuesday','Wednesday','Thursday','Friday']
last_day = weekdays.pop() #括号里没有参数,表示删除list数组中最后一个元素
last_day = weekdays.pop(0) #0参数表示删除数组中的第一个元素
print("last_day = ", last_day, "\nweekdays = ", weekdays)
site1= {'name': 'westos', 'alexa': 10000, 'url': 'www.haha.com'}
pop_obj=site.popitem() #返回一个键值对(key,value)形式,按照后进先出法规则,即最末尾的键值对
print(pop_obj)
print(site)

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3—字典(dict) 的相关文章

  • Python学习笔记(十):包、模块

    一 包 模块 Python中的包相当于文件夹 模块就是 py文件 不同包下有相同名称的模块时 为了区分 可在模块里加上 包名 模块名 路径 这个路径叫做命名空间 注 如果想让一个普通的文件夹变为包 则需要在这个文件夹内添加 init py文
  • selenium webdriver 开启网页失败,被发现为爬虫,的解决办法

    1 换用火狐浏览器 2 隐藏谷歌浏览器中的特殊变量值 from selenium import webdriver options webdriver ChromeOptions 防止被检测 旧版本用法 1 chrome在79版之前用这个
  • 【2019.05】JS逆向——破解百度翻译参数(sign)爬虫 超级详细

    有时间了打算把有道 百度 Google翻译都搞一遍 填坑百度翻译 这篇与有道那篇操作基本一致 有可能写的没有那篇清楚 大家也可以观摩一下上一篇 2019 05 JS逆向 破解有道翻译爬虫参数 sign 一 分析请求参数 打开地址 https
  • Openwrt下安装Python3.5运行出现异常:Fatal Python error: Py_Initialize: Unable to get the locale encoding

    环境说明 Openwrt Python 3 5 依赖的库 libbz2 expat libopenssl libpthread zlib libffi libcrypto libncurses libpanel 使用说明 之前已经安装过py
  • Python3 获取本机所有IP地址

    版权声明 更多最新原创文章请访问 最新原创主页 更多最全原创文章请访问 更多原创主页 先上代码 coding utf 8 Time 2018 2 10 18 24 Author 蛇崽 Email 643435675 QQ com File
  • Debian12中为python3配置虚拟环境及在Pycharm中使用虚拟环境

    在Debian 12中 python默认为python 3 11 基于应用 现需设置虚拟环境 1 安装venv模块 从python3 3开始 配置python虚拟环境 可用venv模块 更加方便了 执行命令 apt install pyth
  • skimage的简介

    skimage的简介 skimage即是Scikit Image 基于python脚本语言开发的数字图片处理包 比如PIL Pillow opencv scikit image等 PIL和Pillow只提供最基础的数字图像处理 功能有限 o
  • scrapy屏幕log日志输出保存到txt文本中

    在使用scrapy框架的时候 因为scrapy在屏幕上面输出的日志一直在跑 有些错误又抓不到 无奈只能先把log日志放在文件中 慢慢进行错误日志的分析 如图所示 我们需要设置的地方只在settings py文件夹中进行设置就可以了 LOG
  • 神经网络模型量化

    量化模型 Quantized Model 是一种模型加速 Model Acceleration 方法的总称 包括二值化网络 Binary Network 三值化网络 Ternary Network 深度压缩 Deep Compression
  • _signature、a_bogus、X-Bogus、msToken生成【2023.8.24】全站通用a-bogus

    本文以教学为基准 本文提供的可操作性不得用于任何商业用途和违法违规场景 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任 包含关注 点赞等 没露任何版权请审核员认真对待谢谢 2022 12
  • ERROR: No matching distribution found for Django 报错解决

    ERROR No matching distribution found for Django 报错解决 今天安装一个 python 依赖时 执行 pip install r requirements txt后 界面出现ERROR No m
  • Python3、setuptools、Pip3安装详解

    博客核心内容 1 Python3安装 2 setuptools安装 3 Pip3安装 之所以写这篇博客 也是有很多原因了 每次安装都要从网上各种百度 网上的答案也是各种各样 于是决定好好总结一下 下面是我在安装的过程中参考的几篇博客 附上相
  • python3爬虫系列之使用requests爬取LOL英雄图片

    我们最终目的就是要把抓取到的图片保存到本地 所以先写一个保存图片的方法 可以保存任何二进制文件 注意在windows下文件命名包含 可能会发生错误 有的英雄皮肤名称确实包含 所以这里使用正则表达式替换下 方法包含文件路径 文件名称 文件内容
  • python连接clickhouse使用方法

    前沿 clickhouse现在作为分布式存储成熟的解决方案 在python开发中经常会用到clickhouse的连接方案 下面所列一个简单的连接clickhouse的写法 正文 from clickhouse driver import C
  • Linux内存精确统计工具

    1 ps mem介绍 ps mem是一个可以帮助我们精确获取 Linux 中各个程序核心内存使用情况的简单python脚本 它会分别计算一个程序私有内存总量和共享内存总量 并以更准确的方式给出了总的内存使用量 2 安装方式 包管理器 pip
  • python3 Excel转txt

    使用场景 每次都是点一下Excel表格链接 调到浏览器中 内容数据也多 这种机械的活 对于程序员来说 能省则省 最后的结果 附上代码 coding utf 8 Time 2018 7 19 19 47 Author 蛇崽 Email 643
  • python pyinstaller打包参数介绍(转)

    pyinstaller相关参数 F onefile 打包一个单个文件 如果你的代码都写在一个 py文件的话 可以用这个 如果是多个 py文件就别用 D onedir 打包多个文件 在dist中生成很多依赖文件 适合以框架形式编写工具代码 我
  • Python3中参数*args和**kwargs介绍

    在Python中 我们可以使用两种特殊符号将可变数量的参数传递给函数 args和 kwargs 你可以使用任何单词代替args和kwargs 但通常做法是使用args和kwargs args允许函数接受任意数量的位置参数 positiona
  • yum出现Error downloading packages错误

    yum出现Error downloading packages错误 错误表现方式 yum可以list 可以clean cache 但是无法安装 错误提示 Downloading packages Error downloading pack
  • python request要求接口参数必须是json数据

    Reqeusts支持以form表单形式发送post请求 只需要将请求的参数构造成一个字典 然后传给requests post 的data参数即可 data参数的格式如下 content type在header中设置 1 data为dict时

随机推荐

  • 结构体数组元素冒泡排序

    将结构体数组元素按年龄排序 include lt iostream gt using namespace std include lt string gt struct hero string name int age string sex
  • Ubuntu配置中文输入法

    1 找到设置 2 选择区域和语言 3 点击Manage Installed Languagees 提示安装的话安装即可 4 点击图示内容 5 将Chinese xff08 simplified xff09 勾选上 右键点击住 xff0c 将
  • Python二分查找的左闭右闭和左闭右开

    bisect 前言源码对比补充 前言 话说刷题刷到一个简单二分查找的题 xff0c 根据我的肌肉记忆马上写出了下面的代码也AC了 span class token keyword class span span class token cl
  • IOS开发之——XIB自定义视图(33)

    一 概述 IOS可以通过XIB进行自定义视图 xff0c 同Storyboard视图相比 xff1a Storyboard xff1a 重量级 xff0c 能够描述一个应用程序所有的界面 XIB xff1a 轻量级 xff0c 在Xcode
  • 错误 1 error MSB8020: The build tools for v140 (Platform Toolset = 'v140') c ————解决方案

    1 问题描述 xff1a 如题 xff1a 2 问题分析 xff1a 造成该问题的原因是所用VS版本平台集不一致导致 xff0c 更改为本机所用VS平台版本集即可 3 解决方案 xff1a 将 34 项目 属性 配置属性 常规 平台工具集
  • 双系统Ubuntu 18.04安装时卡死

    今天准备用U盘在电脑上装一个Ubuntu的系统 xff0c 当进行安装时 xff0c 发现不是在选择语言的界面就是在logo界面卡死 综合了好多网上的资料 xff0c 最终解决了 安装时卡死 xff0c 是因为Ubuntu自带一个名为nou
  • Mybatis-PageHelper自定义查询COUNT

    使Mybatis PageHelper用分页插件 xff0c 可写自定义查询COUNT的SQL语句 xff0c 在列表查询的id后面加上后缀 COUNT xff0c 如下 xff1a lt select id 61 34 selectLef
  • Android 接入穿山甲广告

    下载SDK 首先去穿山甲官网注册账号以及创建应用点此进入官网 点击进入平台 我的是创建完账号并且登录之后是这个样子 进来之后是如下界面 然后依次点击流量 gt 应用会进入到以下界面 然后点击创建应用根据提示走即可 创建完毕之后去依次点击流量
  • Shell | TelePort 堡垒机主服务检测脚本

    根据近期对堡垒机的使用 xff0c 发现 TelePort 比较简单好用 但是在使用过程中 xff0c 发现主服务容易休眠 xff0c 为解决此问题 xff0c 写了个 shell 脚本 xff0c 能够从侧面解决该问题 具体报错 远程连接
  • Ubuntu22.04设置独显用于深度学习运算,核显用于屏幕显示

    目录 摘要主板bios设置第一步 xff1a 切换prime select第二步 xff1a 关机重启 xff0c 并将显示器接口插到主板上第三步 xff1a 设置PRIME Profiles为NVIDIA On Demand模式注意事项参
  • conda新建环境时报错NotWritableError: The current user does not have write permissions

    目录 1 问题描述 2 问题原因 3 解决方案 4 测试 5 参考自 1 问题描述 在使用 conda create n environment name 命令新建环境时 xff0c 遇到错误 xff1a Solving environme
  • C++快读快写详解

    文章目录 完整的读写模板 xff08 新式 xff09 基本快读快写 xff08 旧式 xff09 更快的快读代码解释 完整的读写模板 xff08 新式 xff09 span class token macro property span
  • Anaconda 使用以及cmd命令

    在使用anaconda进行配置环境的时候 xff0c 可以再anaconda中进行环境配置 xff0c 同时也可以使用cmd利用pip或者conda在cmd命令下安装 Ubuntu指令集合 xff09 查看install清单 1 conda
  • 记录ubuntu22.04突然连不上网

    问题 xff1a ubuntu22 04莫名其妙连不上网 xff0c 右上角那个网络图标也没有 折腾了一天之后终于能连网了 因为虚拟机里装了conda环境 xff0c 装了一个机器学习框架要用的各种包 xff0c 实在不想再装一次虚拟机和环
  • IOS开发之——多线程-基础(1)

    一 概述 进程和线程多线程在IOS开发中的应用耗时操作的执行 二 进程和线程 2 1 什么是进程 进程是指在系统中正在运行的一个应用程序比如同时打开QQ Xcode xff0c 系统就会分别启动2个进程通过 活动监视器 可以查看Mac系统中
  • Word文档(.docx) 转为 Markdown文档(.md)的一种方法 —— 一款word插件(Writage)

    将Word文档转为Markdown文档 xff0c 虽然这种情况不多 xff0c 但是遇到的时候 xff0c 如果有一个顺手的插件 xff0c 那真是太舒服了 工具 xff1a Writage大小 xff1a lt 10M下载方式 xff1
  • Redis主从集群搭建(有网情况下在一台服务器)

    Redis集群搭建 简介 Redis 集群是一个提供在多个Redis节点间共享数据的程序集 Redis 集群通过分区来提供一定程度的高可用性 在实际环境中 xff0c 当某个节点宕机或者不可达的情况下能够继续提供服务 xff1b Redis
  • 操作无法完成,因为其中的文件夹或文件已在另一程序中打开 --> 彻底解决方案

    操作无法完成 xff0c 因为其中的文件夹或文件已在另一程序中打开 gt 彻底解决方案 删除文件时出现的状况 xff1a 解决方案一 打开任务管理器 xff08 快捷键Ctrl 43 alt 43 Del xff09 xff0c 选择性能
  • 重装系统后Photoshop打开提示已停止工作

    友情链接 xff1a http laozhangdongzao com 1 首先右键单击photoshop cs6 点击 属性 2 点击 兼容性 3 可以看到此时 以兼容模式运行这个程序 前未勾选 4 勾选 以兼容模式运行这个程序 xff0
  • python3—字典(dict)

    目录 1 字典的描述2 访问字典里的值3 修改字典4 删除字典元素5 字典键的特性6 字典内置函数 amp 方法 1 字典的描述 字典是另一种可变容器模型 xff0c 且可存储任意类型对象 字典的每个键值 key 61 gt value 对