生命在于学习——Python人工智能原理(2.3.4)

news2024/11/25 11:16:40

在这里插入图片描述

三、Python的数据类型

3.2 Python的组合数据类型

3.2.4 字典-映射类型

映射类型是键-值数据项的组合,每一个元素都是一个键-值对,即元素是(key,value),元素之间是无序的,键-值对(key,value)是一种二元关系,源于属性和值的映射关系。
字典是Python中的一种映射类型,用于存储键值对,每个键必须是唯一的,而值可以是任意数据类型,包括整数、浮点数、字符串、列表、甚至是另一个字典。字典是无序的,即字典中的键值对没有固定的顺序。
字典的特点

无序性:字典是无序的,即其元素的排列顺序并不按照添加的顺序进行。
键值对存储:字典的元素是以键值对的形式存储的,其中键(key)是唯一的,并且是不可变的数据类型(如字符串、数字、元组等),而值(value)可以是任意类型的数据。
可变性:字典是可变的,即可以在字典中添加、修改或删除键值对。
高效查找:由于字典使用哈希表实现,因此查找、添加、删除等操作都具有平均情况下接近O(1)的时间复杂度。
无索引:与列表和元组不同,字典不支持通过索引访问元素,而是通过键来访问对应的值。

字典的操作

1. 创建字典
使用花括号 {} 创建:例如 {'name': 'Alice', 'age': 25}
使用 dict() 函数创建:例如 dict(name='Alice', age=25)
从列表的元组对创建:例如 dict([('name', 'Alice'), ('age', 25)])
2. 访问字典中的值
使用方括号 [] 和键来访问值,例如 my_dict['name']
如果访问不存在的键,会触发 KeyError 异常。可以使用 get() 方法来避免异常,并返回指定的默认值。
3. 修改字典
直接对键进行赋值即可修改该键对应的值,例如 my_dict['age'] = 30
4. 添加键值对
如果键不存在于字典中,直接赋值即可添加新的键值对,例如 my_dict['city'] = 'New York'
5. 删除键值对
使用 pop() 方法删除指定键的键值对,并返回该键对应的值,例如 my_dict.pop('name')
使用 del 语句删除指定键的键值对,例如 del my_dict['age']
使用 clear() 方法清空字典中的所有键值对,例如 my_dict.clear()
6. 遍历字典
使用 for 循环遍历字典的键,例如 for key in my_dict:
使用 for 循环遍历字典的键值对,例如 for key, value in my_dict.items():
7. 字典的常用方法
len():返回字典中键值对的数量。
str():将字典转换为字符串格式。
type():返回字典的数据类型。
keys():返回字典中所有的键。
values():返回字典中所有的值。
items():返回字典中所有的键值对。
get():返回指定键的值,如果键不存在则返回默认值。
setdefault():如果键在字典中不存在,则设置该键的值;如果键已存在,则不会改变其值。
update():使用另一个字典的键值对更新当前字典。
这些特点和操作使得字典在Python中成为处理关联数据的强大工具。

3.3 运算符

运算符是告诉程序指定运算操作的符号,是对操作数进行运算,通过运算符可以将两个不同的数据组合起来得到一个运算结果。
Python中的运算符按照不同的功能,分为算术运算符、比较运算符和逻辑运算符。
Python 提供了多种运算符,用于执行各种算术运算、比较、逻辑判断、位运算等。以下是对这些运算符的介绍和示例:

1. 算术运算符
-(取反):result = -5
+(加法):result = 2 + 3
-(减法):result = 5 - 3
*(乘法):result = 2 * 3
/(除法):result = 6 / 2
//(整除):result = 7 // 3 # 结果为 2
%(取模):result = 7 % 3 # 结果为 1
**(幂运算):result = 2 ** 3 # 结果为 8
2. 比较运算符
==(等于):result = (2 == 3) # 结果为 False
!=(不等于):result = (2 != 3) # 结果为 True
>(大于):result = (5 > 3) # 结果为 True
<(小于):result = (2 < 3) # 结果为 True
>=(大于或等于):result = (5 >= 5) # 结果为 True
<=(小于或等于):result = (2 <= 3) # 结果为 True
3. 逻辑运算符
and(逻辑与):result = (True and False) # 结果为 False
or(逻辑或):result = (True or False) # 结果为 True
not(逻辑非):result = not False # 结果为 True
4. 位运算符
&(按位与):result = 5 & 3 # 5(二进制101)和3(二进制011)的按位与结果是1(二进制001)
|(按位或):result = 5 | 3 # 结果是7(二进制111)
^(按位异或):result = 5 ^ 3 # 结果是6(二进制110)
~(按位取反):result = ~5 # 结果取决于整数的大小和系统的位数(对于32位系统,-6)
<<(左移):result = 2 << 1 # 结果是4(二进制100)
>>(右移):result = 4 >> 1 # 结果是2(二进制010)
5. 成员运算符
in:检查某个元素是否存在于某个序列中(如列表、元组或字符串):result = 'a' in 'hello' # 结果为 True
not in:检查某个元素是否不存在于某个序列中:result = 'z' not in 'hello' # 结果为 True
6. 运算符的优先级
Python 中的运算符优先级遵循数学中的常规优先级规则,如括号内的运算优先级最高,幂运算高于乘除和取模,乘除和取模高于加减,然后是比较运算符,接着是逻辑运算符等。可以使用括号来改变默认的优先级。

示例:

python
result = 2 + 3 * 4  # 结果是 14,因为乘法优先于加法  
result = (2 + 3) * 4  # 结果是 20,因为括号改变了优先级
在编写复杂的数学表达式或逻辑表达式时,使用括号可以确保表达式的计算顺序符合你的预期。

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

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

相关文章

STM32CUBEMX配置USB虚拟串口

STM32CUBEMX配置USB虚拟串口 cubemx上默认配置即可。 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 配置完后生成工程&#xff0c;主要就是要知道串口的收发接口就行了。 发送&#xff1a;CDC_Transmit_FS()&#xff0c;同时记得包含头文件#include “…

大数据可视化实验(六)——ECharts与pyecharts数据可视化

目录 一、实验目的... 1 二、实验环境... 1 三、实验内容... 1 1、ECharts可视化制作.. 1 1&#xff09;使用ECharts绘制折线图显示一周的天气变换。... 1 2&#xff09;使用ECharts绘制柱状图显示商品销量的变化。... 4 2、pyecharts可视化制作.. 7 1&#xff09;使用…

Webpack: 深入理解图像加载原理与最佳实践

概述 图形图像资源是当代 Web 应用的最常用、实惠的内容、装饰元素之一&#xff0c;但在 Webpack 出现之前对图像资源的处理复杂度特别高&#xff0c;需要借助一系列工具(甚至 Photoshop)完成压缩、雪碧图、hash、部署等操作。 而在 Webpack 中&#xff0c;图像以及其它多媒体…

前端Web开发HTML5+CSS3+移动web视频教程 Day3 CSS 第1天

P29 - P43 从此开始进入 CSS 的学习。前面都是 HTML 的学习。 CSS 的作用&#xff1a;美化。 HTML 只是规定了网页内容有哪些&#xff0c;在网页中显示的位置默认是从上到下显示&#xff0c;还带有默认效果&#xff0c;比如超链接有颜色有下划线&#xff0c;无序列表有小圆点…

【算法训练记录——Day37】

Day37——贪心Ⅴ 1.leetcode_56合并区间 1.leetcode_56合并区间 思路&#xff1a;排序&#xff0c;如果重叠&#xff0c;更新right 为max(right, curVal), 不重叠就加入res,需要单独考虑最后一次&#xff0c;因为每次都是在下一次遍历开始时判断是否加入res&#xff0c;因此 当…

平衡二叉搜索树/AVL树

VAL树的特性 左右子树高度差的绝对值不超过1。&#xff08;即左右子树高度差取值为-1&#xff0c;0&#xff0c;1&#xff09;且左右子树均为VAL树右子树的值大于左子树的值 在搜索二叉树中我们提及了搜索二叉树的退化问题。 当有序&#xff08;升序或降序&#xff09;地插入…

人工智能类SCI,1区TOP,3个月可录!

今天给大家推荐一本人工智能类SCIE领域的SCI&#xff0c;此期刊为我处目前合作的重点期刊&#xff01;影响因子7.0-8.0之间&#xff0c;JCR1区&#xff0c;中科院2/1区&#xff08;TOP&#xff09;&#xff0c;最重要的是审稿周期较短&#xff0c;对急投的学者较为友好&#xf…

MATLAB-振动问题:两自由度耦合系统自由振动

一、基本理论 二、MATLAB实现 以下是两自由度耦合系统自由振动质量块振动过程动画显示的MATLAB程序。 clear; clc; close allx0 1; D1 40; D12 8; D2 D1; m1 1; omega0 sqrt(D1/m1); k1 D12 / D1; k2 D12 / D2; k sqrt(k1 * k2); omegazh omega0 * sqrt(1 k); omeg…

SpringBoot使用Spark的DataFrame API

什么是Spark&#xff1f; Apache Spark是一个开源的分布式计算系统&#xff0c;它提供了一个快速和通用的集群计算平台。Spark 能够处理大规模数据&#xff0c;支持多种编程语言&#xff0c;如Scala、Java和Python&#xff0c;并且具有多种高级功能&#xff0c;包括SQL查询、机…

基于51单片机的密码锁Proteus仿真

文章目录 一、密码锁1.题目要求2.思路3.仿真图3.1 未仿真时3.2 初始界面3.3 输入密码界面3.4 开锁成功界面3.5 修改密码界面3.6 输入密码错误界面 4.仿真程序4.1 矩阵按键4.2 液晶显示16024.3 存储模块2402 二、总结 一、密码锁 1.题目要求 以51单片机为核心&#xff0c;设计…

【原创实现 设计模式】Spring+策略+模版+工厂模式去掉if-else,实现开闭原则,优雅扩展

1 定义与优点 1.1 定义 策略模式&#xff08;Strategy Pattern&#xff09;属于对象的⾏为模式。他主要是用于针对同一个抽象行为&#xff0c;在程序运行时根据客户端不同的参数或者上下文&#xff0c;动态的选择不同的具体实现方式&#xff0c;即类的行为可以在运行时更改。…

C++:静态断言内存对齐

静态断言 C中的断言assert (1)直接参考&#xff1a;https://www.cnblogs.com/lvchaoshun/p/7816288.html (2)C的assert是运行时检测发现错误&#xff0c;而不是编译时 (3)C在编译时错误用#error来输出C静态断言 (1)C引入static_assert(表达式, “提示字符串”)来实现编译时的静…

[数据集][目标检测]婴儿状态睡觉哭泣检测数据集VOC+YOLO格式7109张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;7109 标注数量(xml文件个数)&#xff1a;7109 标注数量(txt文件个数)&#xff1a;7109 标注…

【MySQL基础篇】SQL指令:DQL及DCL

1、DQL DQL - 介绍 DQL英文全称是Data Query Language(数据查询语言)&#xff0c;数据查询语言&#xff0c;用来查询数据表中的记录。&#xff08;在MySQL中应用是最为广泛的&#xff09; 查询关键字&#xff1a;SELECT DQL - 语法 SELECT 字段列表 FROM 表名列表 WHER…

代码随想录算法训练营第四十七天| 188.买卖股票的最佳时机IV ,309.最佳买卖股票时机含冷冻期 ,714.买卖股票的最佳时机含手续费

188. 买卖股票的最佳时机 IV - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxProfit(int k, int[] prices) {int[][] dp new int[prices.length][2*k];for(int i0;i<2*k;i){if(i%2 0){dp[0][i] -prices[0];}else{dp[0][i] 0;} }for(int i1;i…

LeetCode题练习与总结:环形链表Ⅱ--142

一、题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测…

C语言 | Leetcode C语言题解之第206题反转链表

题目&#xff1a; 题解&#xff1a; struct ListNode* reverseList(struct ListNode* head) {if (head NULL || head->next NULL) {return head;}struct ListNode* newHead reverseList(head->next);head->next->next head;head->next NULL;return newHea…

Camera Raw:增强

Camera Raw 中的增强 Enhance命令基于 AI 技术提升图像的质量&#xff0c;可用于降噪、生成清晰的细节以及提高图像的分辨率。 ◆ ◆ ◆ 主要用途 1、高 ISO 图像降噪 勾选“去杂色” Denoise&#xff0c;可轻松消除使用高 ISO 设置或在低光环境下拍摄的照片中的噪点。 可以对…

Nettyの粘包、半包问题框架解决方案自定义协议

1、Netty框架是如何解决粘包、半包问题 关于粘包&#xff0c;半包问题&#xff0c;在前面几篇中都有提及&#xff0c;我们简单的复习一下。 粘包指的是客户端发出的多条消息&#xff0c;被服务端当做一条进行接收。半包指的是客户端发出一条完整的消息&#xff0c;在传输的过程…

鸿蒙项目实战-月木学途:1.编写首页,包括搜索栏、轮播图、宫格

效果展示 搜索栏制作 相关知识回顾 输入框组件TextInput 单行输入框类型.type(InputType.Normal)//基本输入框.type(InputType.Password)//密码.type(InputType.Email)//邮箱.type(InputType.Number)//数字.type(InputType.PhoneNumber)//电话号.type(InputType.Normal).type…