python学习--基本数据类型之字典
python中数据类型
第一类:不可变类型、静态数据类型、不支持增删改操作
- 数字(number)
- 字符串(string)
- 元组(tuple)
第二类:可变类型、动态数据类型、支持增删改操作
- 列表(list)
- 字典(dictionary)
- 集合(set)
python学习–基本数据类型之字典
1、创建、使用
"""
字典的解释:
字典是以键值对的形式存储数据 (相当于c++中的set)
语法:
{key:value,key1:value...}
通过索引key寻找对应的value值key & val 的要求
key : 必须是可hash的数据类型
val: 可以是任何数据类型 -- str list字典中key认为只有一个数据,并且元素不可以重复
"""
# 举例 -- 定义一个字典
dic = {"jay":"周杰伦", "金毛失望": "谢逊"}
val = dic["金毛失望"]
print(val) # 谢逊# 举例说明字典的key和val的对应的数据类型
d = {123 : "呵呵", True : "哈哈", "name" : "me", (1, 2, 3) : 123, "老赵" : ["李大妈", "刘大婶"]}
print(d)
# 通过key寻找到对应的val -- 帮助老赵 找对象
val = d["老赵"]
print(val)
2、字典的增删改查
"""
字典的增删改查
1、增新建空字典 向空字典中添加元素(通过键值对的方式)在已存在的字典中增加新的元素 通过键值对的形式增加使用默认值增加 -- setdefault
2、删除删除单个元素使用内置方法pop删除所有元素使用内置方法clear3、修改包含上面方法
4、查询查询的方式1: 直接通过key寻找对应valdic[”key“]查询的方式2: 使用get方法,直接通过key寻找对应valdic.get(”key“)方法区分:相同点:都可以查询功能不同点:1中当查询不存在的key的时候,直接报错2中当查询不存在的key的时候,不会报错,返回None
"""
dic1 = dict()
dic1["key1"] = "小猫"
dic1["key2"] = "小狗"
print(dic1) # {'key1': '小猫', 'key2': '小狗'}"""
setdefault: 设置默认值,设置的时候默认key是不存在的,若key本身存在,则使用setdefault设置失效
"""
dic1.setdefault("小猫", "祝小咪") # key必须是不存在的
print(dic1)# # 修改
# d['jj'] = "刘能" # dict[老key] = 值 修改
# print(d)# # 删除
dic2 = {"齐天大圣" : "孙悟空","天蓬元帅" : "猪八戒","卷帘将军" : "沙悟净","金蝉子" : "唐三藏"
}
print(dic2)
val2 = dic2.pop("齐天大圣")
print(dic2)
val3 = dic2.clear()
print(dic2)# 查询
dic3 = {"花和尚" : "鲁智深","及时雨" : "宋江","黑旋风" : "李逵"
}
# 循环查询
for i in range(len(dic3)):name = input("请输入一个名字:")val = dic3.get(name)if val is None:print("查无此人")else:print(val)print("恭喜你,找到啦!")"""
小练习:列表和字典的
将一个列表的元素分开,把大于50的放一起, 把小于50的放一起"""
lst = [11, 22, 33, 44, 55, 66, 77, 88, 99]
# 创建一个字典
dic = dict()
for item in lst:if item < 50:# 如果key不存在就创建一个if dic.get("key1") is None:dic["key1"] = [item]else:# 本身存在直接添加即可dic["key1"].append(item)else:if dic.get("key2") is None:dic["key2"] = [item]else:# 本身存在直接添加即可dic["key2"].append(item)print(dic)解法二:简化的方法
# lst = [11, 22, 33, 44, 55, 66, 77, 88, 99]
result = {} # 结果
for item in lst:if item > 50:result.setdefault("bigger", []).append(item)else:result.setdefault("smaller", []).append(item)
print(result)
3、字典的循环
"""
字典中的循环和嵌套
循环:字典中通过循环可以获取存储中key\val值
"""dic = {"花和尚" : "鲁智深","及时雨" : "宋江","黑旋风" : "李逵"
}# 方法1: 直接通过key拿到对应的key\value
for key in dic :print(key, dic[key])# 方法2:通过key() 函数可以拿到所有的key
lst = dic.keys() # 保存在一个list中
print(lst)
for i in lst:print(i,dic[i])# 方法3:通过value() 拿到所有的value
lst1 = dic.values()
for i2 in lst1:print(i2)# 方法4:字典中可以通过items()拿到所有数据,直接拿到key value中的数据
for key, value in dic.items() :print(key, dic[key])"""
知识点补充
解构
元组和列表中可以使用 将元素拆开分别输出"""
a = 10, 20
print(type(a)) # <class 'tuple'>
b = [10, 20]
print(type(b)) # <class 'list'>
c = dict()
print(type(c)) # <class 'dict'>
d, f = 22, 33
print(d, f)
4、嵌套
"""
字典的嵌套:字典中嵌套字典,访问字典中任意元素的数值,结合字典的常用的方法,灵活使用
"""
dic = {"name":"吴承恩","西游记":{"齐天大圣" : "孙悟空","天蓬元帅" : "猪八戒","卷帘将军" : "沙悟净","金蝉子" : "唐三藏"}
}
print(dic)
相关文章:
python学习--基本数据类型之字典
python中数据类型 第一类:不可变类型、静态数据类型、不支持增删改操作 数字(number)字符串(string)元组(tuple) 第二类:可变类型、动态数据类型、支持增删改操作 列表ÿ…...

【OpenCV入门】第九部分——模板匹配
文章结构 模板匹配方法单模板匹配单目标匹配多目标匹配 多模板匹配 模板匹配方法 模板是被查找的图像。模板匹配是指查找模板在原始图像中的哪个位置的过程。 result cv2.matchTemplate(image, templ, method, mask)image: 原始图像templ: 模板图像&a…...
在设计web页面时,为移动端设计一套页面,PC端设计一套页面,并且能自动根据设备类型来选择是用移动端的页面还是PC端的页面。
响应式设计,即移动端和PC端共用一个HTML模式,网站的程序和模板自动根据设备类型和屏幕大小进行自适应调整。这种方法我不喜欢,原因是不能很好保证各种客户端的效果,里面存在各种复杂的兼容性等问题。 我喜欢为不同的客户端写不同的…...

微信小程序地图应用总结版
1.应用场景:展示公司位置,并打开第三方app(高德,腾讯)导航到目标位置。 (1)展示位置地图 uniapp官网提供了相关组件,uniapp-map组件https://uniapp.dcloud.net.cn/component/map.ht…...

分支创建查看切换
1、初始化git目录,创建文件并将其推送到本地库 git init echo "123" > hello.txt git add hello.txt git commit -m "first commit" hello.txt$ git init Initialized empty Git repository in D:/Git/git-demo/.git/ AdministratorDESKT…...

参编三大金融国标,奇富科技以技术促行业规范化演进
近期,由中国互联网金融协会领导制定的《互联网金融智能风险防控技术要求》《互联网金融个人网络消费信贷信息披露》《互联网金融个人身份识别技术要求》三项国家标准颁布,由国家市场监督管理总局、国家标准化管理委员会发布,奇富科技作为核心…...

芯片开发之难如何破解?龙智诚邀您前往DR IP-SoC China 2023 Day
2023年9月6日(周三),龙智即将亮相D&R IP-SoC China 2023 Day,呈现集成了Perforce与Atlassian产品的芯片开发解决方案,助力企业更好、更快地进行芯片开发。 龙智资深顾问、技术支持部门负责人李培将带来主题演讲—…...

Gof23设计模式之策略模式
1.概述 该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,…...

SAP 物料主数据屏幕增强
增强步骤 1.为主表添加一个附加结构 根据业务需求新建一个结构,结构中放入需要增强的屏幕字段并激活。 打开事务代码SE11,在需要保存的主表中添加这个附加结构并激活。 注:根据业务需求及屏幕增强的视图判断需要保存的主表是哪张ÿ…...
数据库-索引
介绍: 索引是帮助数据库高效获取数据的数据结构 优缺点: 优点:提高数据查询的效率,降低数据库的IO成本 通过索引列对数据进行排序,降低数据排序的成本,降低cpu消耗 缺点:索引会占用存储空间 索…...

Excel·VBA二维数组组合函数的应用实例
看到一个问题《关于#穷举#的问题,如何解决?(语言-开发语言)》,对同一个数据存在“是/否”2种状态,判断其是否参与计算,并输出一系列数据的“是/否”状态的结果 目录 方法1:二维数组组合函数结果 方法2&am…...
hive anti join 的几种写法
t_a 表的记录如下 c1 | :———— | a | b | c | 生成 SQL 如下: create table t_a(c1 string); insert into t_a values("a"),("b"),("c");t_b 表的记录如下 c1bm 生成 SQL 如下: create table t_b(c1 string); in…...

使用Android原生制作毛玻璃效果图片
毛玻璃效果,也被称为模糊效果,是许多现代应用中流行的一种视觉效果。在 Android 中,我们可以通过多种方式实现该效果。本文将探讨如何使用 Android 原生的 Bitmap 类和 RenderScript 来实现毛玻璃效果。 1. 准备工作 首先,你需要…...
软件设计的七大原则
一. 软件设计的七大原则 单一职责原则:一个类只负责一个功能领域中的饿相应职责。开闭原则:对扩展开放,对修改关闭,多使用抽象类和接口,应该尽量使这个系统能够扩展新的功能,通过扩展来实现变化࿰…...

Windows下安装配置Nginx
nginx安装 官网下载地址 https://nginx.org/en/download.html 推荐使用稳定版本 截止时间2023年9月5日稳定版本为 1.24.0 百度网盘 链接:https://pan.baidu.com/s/1cXm-jN2fMzKdVMRhbG72Fg 提取码:9hcq 下载完成以后,得到nginx压缩包; 双击启动nginx.…...
数据结构类型
1.在C和C中static关键字的用法 在C中 1.static修饰未初始化全局变量,默认结果为0 2.static修饰局部变量,延长生命周期,生命周期不是作用域,它依旧是局部变量 3.static修饰函数只能在当前文件中调用,不可用跨文件调用…...
WPF元素绑定
简单的说,数据绑定是一种关系,该关系告诉WPF从源对象提取一些信息,并用这些信息设置目标对象的属性。目标属性始终是依赖属性,通常位于WPF元素中——毕竟,WPF数据绑定的最终目标是在用户界面中显示一些信息。然而&…...

centos编译升级cmake,痛苦的Linux小白
环境 root 用户 下载 cmake官网下载地址:https://cmake.org/download/ 获取下载地址,右击cmake-3.27.4.tar.gz 命令行输入链接地址,下载 wget https://github.com/Kitware/CMake/releases/download/v3.27.4/cmake-3.27.4.tar.gz解压 tar -zx…...

Unity资源无法下载 反复提示需同意Terms of Service和EULA 同意后无效的解决方案
前言 最近在玩Unity,跟着tutorial做点项目,但是在下载免费资源时,只有从网站上点“打开Unity”,才能在本地Unity Editor的Package Manager里找到这个资源(且点一下下面的刷新就没有了),并且点击…...

记录--vue 拉伸指令
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 在我们项目开发中,经常会有布局拉伸的需求,接下来 让我们一步步用 vue指令 实现这个需求 动手开发 在线体验 codesandbox.io/s/dawn-cdn-… 常规使用 解决拉伸触发时机 既然我们使用了指令的方式…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
PostgreSQL 与 SQL 基础:为 Fast API 打下数据基础
在构建任何动态、数据驱动的Web API时,一个稳定高效的数据存储方案是不可或缺的。对于使用Python FastAPI的开发者来说,深入理解关系型数据库的工作原理、掌握SQL这门与数据库“对话”的语言,以及学会如何在Python中操作数据库,是…...