Python--字典

news2024/12/29 18:02:25

Python--字典

  • <font color=blue>一、创建字典
  • <font color=blue>二、访问字典元素
  • <font color=blue>三、字典的增、删、查、改
    • <font color=blue>1、添加元素
    • <font color=blue>2、删除元素
    • <font color=blue>3、查找元素
    • <font color=blue>4、修改元素
  • <font color=blue>四、字典的其他操作

一、创建字典

字典包含两部分:“键”和“值”,“键”和“值”之间用冒号隔开。字典中键值是唯一的。

1、使用赋值运算符创建字典

dic = {} #创建空字典
dic = {'A': 20} #'A'是键,20为值

2、通过映射函数创建字典

格式:dictionary = dict(zip(key_list, value_list2))
dictionary :字典名称
zip()函数:用于将多个元组或列表对应位置的元素组合为元组,并返回包含这些内容的zip对象。若想得到元组,就用tuple()函数转为元组;若想得到列表,就用list()函数转为列表。
key_list:一个列表,用于生成字典的键
value_list2:一个列表,用于生成字典的值。
如果key_list和value_list2的长度不同,则与最短的列表长度相同。

key_list = ['a', 'b', 'c']
value_list = [1, 2, 3, 4, 5, 6] #与key_list的长度不同,则只取前三个元素和key_list中的元素匹配

dic = dict(zip(key_list, value_list))
print(dic)

输出:

{'a': 1, 'b': 2, 'c': 3}

3、通过给定“键-值”对创建字典

格式:dictionary = dict(key1 = value1, key2 = value2, …, keyn = valuen)
dictionary :字典名
key1,key2:字典的键,必须唯一
value1,value2:字典的值

dic = dict(a = 1, b = 2, c = 3) #a、b、c为键,1、2、3为值
print(dic)

输出:

{'a': 1, 'b': 2, 'c': 3}

4、使用fromkeys()方法创建字典

格式:dict.fromkeys(seq[, value])
seq:字典键值列表
value:可选参数, 设置键序列(seq)的值,默认为 None

seq = ('Google', 'Runoob', 'Taobao')
 
# 不指定默认的键值,默认为 None 
thisdict = dict.fromkeys(seq)
print ("新字典为 : %s" %  str(thisdict))
 
# 指定默认的键值
thisdict = dict.fromkeys(seq, 10)
print ("新字典为 : %s" %  str(thisdict))

输出:

新字典为 : {'Google': None, 'Runoob': None, 'Taobao': None}
新字典为 : {'Google': 10, 'Runoob': 10, 'Taobao': 10}

5、推导式创建列表

格式;{表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]}
if 条件表式:可选参数

import random
randomdict={i:random.randint(10,99) for i in range(1,5)}
print(randomdict)
 
#运行结果
{1: 61, 2: 19, 3: 97, 4: 14}
olddict={'Jack': 4, 'Tom': 3}
newdict = {v: k for k, v in olddict.items() if v>3}
print(newdict)

输出结果:
{4: 'Jack'}

二、访问字典元素

1、通过键-值对访问

dic = {'a':1, 'b':2, 'c':3}
print(dic['a'])

#输出结果:
1

使用该方法访问元素时,如果键值不存在,则抛出异常

2、使用get()方法获取指定键的值

格式:dictionary_name.get(key, [default])
dictionary_name:字典名
default:可选参数,用于指定“键”不存在时返回的值,如果省略,则返回None。

dic = {'a':1, 'b':2, 'c':3}
print(dic.get('a'))

#输出
1

3、使用items()方法

使用字典的items()方法可以获取键-值对,结合for循环便可以遍历字典

dic = {'a':1, 'b':2, 'c':3}

for key, value in dic.items():
    print(key, value)

#输出:
a 1
b 2
c 3
dic = {'a':1, 'b':2, 'c':3}

for item in dic.items():
    print(item)

#输出:
('a', 1)
('b', 2)
('c', 3)

4、使用values()获取字典值

dic = {'a':1, 'b':2, 'c':3}
print(dic.values())

#输出
dict_values([1, 2, 3])

三、字典的增、删、查、改

1、添加元素

1)、通过键-值对添加字典元素

格式:dictionary[key] = value
dictionary:字典名
key:要添加的键,必须是唯一的,并且不可变。可以是字符串、数字或元组。
value:元素值,可以是任何数据类型,不是必须唯一的。

dic = {'a':1, 'b':2, 'c':3}
dic['d'] = 4
print(dic)

#输出结果
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

2)、使用update()方法添加元素

dic = {'a':1, 'b':2, 'c':3}
dic.update(d = 4) #形式一
dic.update(e = 5) #形式二
dic.update({'f':6}) #形式三
dic.update(**{'g':7}) #形式四
print(dic)

#输出结果
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7}

2、删除元素

1)、使用del语句删除单个元素

dic = {'a':1, 'b':2, 'c':3}
del dic['c'] #删除key为c的元素
print(dic)

#输出结果
{'a': 1, 'b': 2}

2)、使用pop()方法删除元素

格式:pop(key[,default])
key:要删除的键
default :当键 key 不存在时返回的值
如果 key 存在 - 删除字典中对应的元素
如果 key 不存在 - 返回设置指定的默认值 default
如果 key 不存在且默认值 default 没有指定 - 触发 KeyError 异常

dic = {'a':1, 'b':2, 'c':3}
dic.pop('c') #删除指定元素
print(dic)

#输出
{'a': 1, 'b': 2}

3)、使用popitem()方法删除字典中最后一个元素

popitem方法返回并删除字典中的最后一对键和值。

dic = {'a':1, 'b':2, 'c':3}
dic.popitem() #删除字典中最后一个元素
print(dic)

#输出
{'a': 1, 'b': 2}

4)、删除字典中所有元素

dic = {'a':1, 'b':2, 'c':3}
dic.clear() #清空字典
print(dic)

#输出
{}

3、查找元素

1)、使用[]查找

若找不到对应的key值,会报一个KeyError错误。

dic = {'a':1, 'b':2, 'c':3}
print(dic['c'])

#输出
3

2)、使用get()方法查找

若找不到对应的key值,返回None。

dic = {'a':1, 'b':2, 'c':3}
print(dic['c'])

#输出
3

3)、使用setdefault()方法查找

格式:dict.setdefault(key, default=None)

参数:
key – 查找的键。
default – 键不存在时,设置的默认键值None。

返回值:
如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值。
如果字典中已经存在这个key,setdefault不会修改key原来的值,而且该方法会返回key原来的值

dic = {'a':1, 'b':2, 'c':3}
print(dic.setdefault('d', 666))

#输出
666

4、修改元素

1)、通过[key]值修改元素值

dic = {'a':1, 'b':2, 'c':3}
dic['c'] = 100
print(dic)

#输出
{'a': 1, 'b': 2, 'c': 100}

2)、通过update方法修改元素值

dic = {'a':1, 'b':2, 'c':3}
dic.update(a = 100) #形式一
dic.update({'b': 200}) #形式二
dic.update(**{'c': 300}) #形式三

print(dic)

四、字典的其他操作

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Git——分布式版本控制系统

简介 Git是一个开源的分布式版本控制系统&#xff0c;可以高效的处理从小到很大的项目版本管理。 分类 集中式 SVN&#xff0c;CVS 使用单一的服务器用来管理和存储所有文件的修订版本&#xff1b;协同开发的成员拉取或提交都需连接到这台服务器&#xff1b;如果服务器宕机…

电控开关详细介绍 MOSFET

目录 NMOS MOSFET的开关模型 现实生活中MOSFET的截面图 输出特性曲线 总结 MOSFET的SCS模型 MOSFET的SR模型 进一步分析 例子 PMOS CMOS(Complementary Metal-Oxide-Semiconductor) NMOS 金属氧化物半导体场效应晶体管 这是一个什么样的结构呢&#xff1f; 对于…

2023 年6月开发者调查统计结果——最流行的技术(2)

2023 年6月开发者调查统计结果——最流行的技术&#xff08;2&#xff09; 本文目录&#xff1a; 二十三、编程、脚本和标记语言 二十四、数据库 二十五、云平台 二十六、网络框架和技术 二十七、其他框架和库 二十八、其他工具 二十九、集成开发环境 三十、异步工具 …

chatgpt赋能python:Python查错完全指南:如何快速诊断和解决常见的错误

Python查错完全指南&#xff1a;如何快速诊断和解决常见的错误 Python是一种高级编程语言&#xff0c;它被广泛用于数据科学、机器学习、Web开发和自动化等领域。虽然Python具有易于学习和易于使用的特点&#xff0c;但是在编写复杂的应用程序时&#xff0c;错误和异常情况经常…

chatgpt赋能python:Python构造图入门指南

Python构造图入门指南 Python是一种非常强大的编程语言&#xff0c;它可以用于各种任务&#xff0c;包括数据分析、机器学习和深度学习等领域。其中&#xff0c;构造图是Python在数据分析领域的一项非常重要的技术&#xff0c;本文将为大家介绍Python构造图的入门指南。 什么…

chatgpt赋能python:Python查找手机号码

Python查找手机号码 在今天的数字时代&#xff0c;手机号码已成为每个人生活中必不可少的一部分。虽然我们可以轻松地拥有一部手机&#xff0c;但是对于那些需要通过电话来联系客户、朋友或家庭成员的人&#xff0c;获取正确的手机号码就显得尤为重要。 这就是为什么Python查…

【科普知识】如何解决CANopen通信一体化伺服电机PDO无法正常使用

随着现代的自动化程度不断提高&#xff0c;一体化电机的应用正逐渐成为行业的新趋势。 一体化伺服电机是现代工业自动化系统中常用的设备&#xff0c;它集成了伺服电机、驱动器和控制器等功能&#xff0c;提供了高效、精确的运动控制。在其系统中&#xff0c;我们通常使用PDO&a…

vue封装ketcher 化学式、分子式编辑器

ketcher是一个化学结构式编辑器&#xff08;github地址&#xff09;&#xff0c;ketcher插件提供了传统的html standalone版、npm包react版&#xff0c;并没有npm包vue版&#xff0c;集成到vue的原理是将standalone版嵌到iframe中&#xff0c;通过拿到iframe中的ketcher对象&am…

解决Armbian安装UFW防火墙后无法访问1Panel面板的问题:有效解决方案揭秘

文章目录 前言armbian安装防火墙原因分析解决方案第一步&#xff1a;查看1panel的面板入口端口第二步&#xff1a;打开指定端口的访问权限第三步&#xff1a;重启防火墙第四步骤&#xff1a;查看防火墙状态【可略】 前言 官方的教程很不错&#xff0c;但是还是有一些缺陷&…

第四章 ResNet网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

.net 软件开发模式——三层架构

三层架构是一种常用的软件开发架构模式&#xff0c;它将应用程序分为三个层次&#xff1a;表示层、业务逻辑层和数据访问层。每一层都有明确的职责和功能&#xff0c;分别负责用户交互、业务处理和数据存储等任务。这种架构模式的优点包括易于维护和扩展、更好的组织结构和代码…

Vue的详细安装教程,使用NVM安装是我所推荐的方式

第一步&#xff1a;卸载之前安装的node&#xff0c;安装NVM 进入网站&#xff1a;Releases coreybutler/nvm-windows GitHub 选择一个版本进行安装即可 安装的路径我就不用多说了&#xff0c;全英文路径&#xff0c;尽量不要安装在c盘上&#xff0c;计算机人都懂为什么&…

vmware17+ubuntu18.04通过qemu8.0.2启动arm64虚拟机-测试vsock

文章目录 一、环境搭建1.qemu-8.0.22.buildroot配置 3.编译工具链gcc-linaro-7.2.1下载交叉编译工具链 4.linux kernel 5.16config_kernel.sh配置内核build_kernel.sh 5.启动虚拟机&#xff08;1&#xff09;创建磁盘镜像文件&#xff08;2&#xff09;拷贝内核镜像和根文件系统…

ESP32(MicroPython)端午节项目

本程序致敬了屏幕驱动例程&#xff0c;依次以4种字体显示Happy Dragon Boat Festival!&#xff0c;并重复一次。 代码如下 from ili934xnew import ILI9341, color565 from machine import Pin, SPI import m5stack import tt14 import glcdfont import tt14 import tt24 imp…

JDK自带的构建线程池的方式之newWorkStealingPool

newWorkStealingPool和之前的几种线程池的创建方式有很大的不同&#xff0c;之前定长、单例、缓存、定时任务的四大线程池都是基于ThreadPoolExecutor去实现的。newWorkStealingPool则是基于ForkJoinPool的方式构建出来的。 ThreadPoolExecutor的核心特点 只有一个阻塞队列Dela…

深度学习(24)——YOLO系列(3)

深度学习&#xff08;24&#xff09;——YOLO系列&#xff08;3&#xff09; 文章目录 深度学习&#xff08;24&#xff09;——YOLO系列&#xff08;3&#xff09;1. BOF(bag of freebies)2. Mosaic data augmentation3. 数据增强4. self-adversarial-training&#xff08;SAT…

深入浅出MySQL索引

索引 索引在MySQL中是举足轻重的。在添加索引后&#xff0c;我们在MySQL的查询上会极大的提高我们的查询效率&#xff0c;这也是慢查询解决办法之一。 数据结构 最初的时候MySQL中是采用二叉树进行插入数据的&#xff0c;这样的缺点很明显&#xff0c;就是树太高了&#xff…

C++QT入门

CQT 文章目录 CQT1. QT概述1.1 什么是QT1.2 QT的发展史1.3 支持的平台1.4 QT版本1.5 Qt 的下载与安装1.6 QT的优点1.7 成功案例 2. 创建QT项目2.1 使用向导创建2.2 手动创建2.3 .pro 文件2.4 设置父对象2.5 按钮设置属性2.5.1 按钮设置文本2.5.2 设置移动2.5.3 设置固定大小 2.…

[进阶]网络通信:UDP通信,一发一收、多发多收

UDP通信 特点&#xff1a;无连接、不可靠通信。不事先建立连接&#xff1b;发送端每次把要发送的数据&#xff08;限制在64KB内&#xff09;、接收端1P、等信息封装成一个数据包&#xff0c;发出去就不管了。Java提供了一个java.net.Datagramsocket类来实现UDP通信。 Datagram…

Qt/C++使用QUiLoader动态加载ui资源文件

目录 动态对话框使用场景注意事项动态对话框加载获取动态对话框的控件对象与动态对话框建立关联动态修改ui资源文件效果测试 动态对话框 动态对话框(dynamic dialog)就是在程序运行时使用的从Qt设计师的.ui文件创建而来的那些对话框。动态对话框不需要通过uic把 .ui文件转换成…