[GN] Python3基本数据类型 -- 与C的差异
文章目录
- 前言
- Python3的基本数据类型
- 6个标准的数据类型
- Numbers
- String
- List
- tuple
- Sets
- Dictionaries
- Python运算符
- 逻辑 运算符
- 成员运算符
- 身份运算符
- Python3 数字
- Python3 序列
- 序列切片
- 序列相加
- 序列相乘
- 序列相关内置函数
- Python3 列表
- 访问列表的值
- 更新列表
- 删除列表元素
- 拼接列表
- 嵌套列表
- 列表函数方法
- Python3 元组
- 访问元组的值
- 修改元组
- 删除元组元素
- 元组内置函数
- Python3 字典
- 访问字典的值
- 修改字典
- 删除字典元素
- 字典内置函数
- Python3 集合
- 集合的基本操作
- 集合内置函数
前言
提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
Python3的基本数据类型
6个标准的数据类型
Numbers(数字); String(字符串); List(列表); Tuple(元组); Set(集合); Dictionaries(字典)
Numbers
- 类型
int
float
boll
complex(复数) 4+3j
- 数值运算
2//4 除法 一个整数
2/4 除法 一个浮点数
2**5 乘方
String
- \ 转义特殊字符
>>> print('C:\some\name')
C:\some
ame
>>> print(r'C:\some\name')
C:\some\name
- 可以使用+ *连接
>>> print('str'+'ing', 'my'*3)
string mymymy
- 可以对字符串切边(前闭后开)
>>> word = 'ilovepython'
>>> word[1:5]
'love'
>>> word[:]
'ilovepython'
>>> word[5:]
'python'
>>> word[-10:-6]
'love'
- 与C字符串不同,Py字符串不能改变
word[0] = 'm' #这是错误的
List
- 写在方括号之间,列表元素类型可以不同
>>> a = ['him', 25, 100, 'her']
>>> print(a)
['him', 25, 100, 'her']
- 可以使用+ 连接
>>> a = [1, 2, 3, 4, 5]
>>> a + [6, 7, 8]
[1, 2, 3, 4, 5, 6, 7, 8]
tuple
- 写在圆括号之间,与列表相似,
不同在于元组的元素不能改变
>>> a = (1991, 2014, 'physics', 'math')
>>> print(a, type(a), len(a))
(1991, 2014, 'physics', 'math') <class 'tuple'> 4
- 构造包含0或1个元素的元组的特殊语法规则
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
- 元组也可以使用+ 操作符
Sets
- 是一个无序不重复元素的集合(可用来成员关系测试和消除重复元素);可以使用大括号 或者 set()函数创建集合
>>> student = () #创建空集合
>>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
>>> print(student) # 重复的元素被自动去掉
{'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}
>>> 'Rose' in student # membership testing(成员测试)
True
>>> # set可以进行集合运算
...
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'b', 'c', 'd', 'r'}
>>> a - b # a和b的差集
{'b', 'd', 'r'}
>>> a | b # a和b的并集
{'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}
>>> a & b # a和b的交集
{'a', 'c'}
>>> a ^ b # a和b中不同时存在的元素
{'l', 'm', 'b', 'd', 'z', 'r'}
Dictionaries
- 字典是一种映射类型,他是一个无序的键值对集合。
关键字key必须是不可变类型(也就是说list和包含可变类型的tuple不能是关键字)
>>> dic = {} # 创建空字典
>>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886}
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Rose': 1886}
>>> tel['Jack'] # 主要的操作:通过key查询
1557
>>> del tel['Rose'] # 删除一个键值对
>>> tel['Mary'] = 4127 # 添加一个键值对
>>> tel
{'Tom': 1320, 'Jack': 1557, 'Mary': 4127}
>>> list(tel.keys()) # 返回所有key组成的list
['Tom', 'Jack', 'Mary']
>>> sorted(tel.keys()) # 按key排序
['Jack', 'Mary', 'Tom']
>>> 'Tom' in tel # 成员测试
True
>>> 'Mary' not in tel # 成员测试
False
- 构造函数可以直接从键值对swquence中构造字典
>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
{'jack': 4098, 'sape': 4139, 'guido': 4127}>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}>>> dict(sape=4139, guido=4127, jack=4098)
{'jack': 4098, 'sape': 4139, 'guido': 4127}
Python运算符
逻辑 运算符
and; or; not
成员运算符
in; not in
身份运算符
is 两个标识符是不是引用自一个对象
is not 两个标识符不是引用自不同一个对象
Python3 数字

Python3 序列
序列类型包括 字符串、列表、元组、集合和字典。(集合和字典不支持索引、切片、相加和相乘操作)
序列切片
访问一定范围内的元素
sname[start : end : step]
- sname: 序列名称
- start: 索引开始位置(包括该位置
- end: 结束索引位置(不包括该位置)
- step:隔几个存储位置
str=""
#取索引区间为[0,2]之间(不包括索引2处的字符)的字符串
print(str[:2])
#隔 1 个字符取一个字符,区间是整个字符串
print(str[::2])
#取整个字符串,此时 [] 中只需一个冒号即可
print(str[:])
序列相加
序列相乘
序列相关内置函数

Python3 列表
列表的数据项不需要有相同类型
list1 = ['Google', '', 1997, 2000]
访问列表的值
| 索引 | 0 | 1 | 3 |
|---|---|---|---|
| 负索引 | -4 | -3 | -1 |
| 值 | ‘Google’ | ‘’ | 2000 |
更新列表
list1[2] = "1998" #直接对想要修改的数据项赋上一个新值即可修改该数据项
print ("list1的第三个元素为: ", list1[2])
list1.append(2021) #append()可以在列表后追加一项列表项
print ("追加列表项后的list1: ", list1)list1的第三个元素为: 1998
追加列表项后的list1: ['Google', '', '1998', 2000, 2021]
删除列表元素
- del删除
del list1[0] #del可以删掉一个元素
print ("删除列表项后的list1: ", list1)删除列表项后的list1: ['', 1997, 2000]
- remove删除
list1 = ['Google', '', 'Taobao', 'Baidu']
list1.remove('Taobao') # remove可以按值查找列表中的元素并删除
print ("列表现在为 : ", list1)
list1.remove('Baidu')
print ("列表现在为 : ", list1)列表现在为 : ['Google', '', 'Baidu']
列表现在为 : ['Google', '']
拼接列表
+号直接
嵌套列表
>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x [['a', 'b', 'c'], [1, 2, 3]]
>>> x[0] ['a', 'b', 'c']
>>> x[0][1] 'b'
列表函数方法


Python3 元组
元组使用小括号(); 列表使用方括号[]
list1 = ('Google', '', 1997, 2000)
访问元组的值
| 索引 | 0 | 1 | 3 |
|---|---|---|---|
| 负索引 | -4 | -3 | -1 |
| 值 | ‘Google’ | ‘’ | 2000 |
修改元组
元组中的元素值不允许修改。但可以连接
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz')# 以下修改元组元素操作是非法的。
# tup1[0] = 100# 创建一个新的元组
tup3 = tup1 + tup2;
print (tup3)
删除元组元素
元组中的元素值不允许删除。但可以使用del删除整个元组
- del删除
tup = ('Google', '', 1997, 2020)print (tup)
del tup;
元组内置函数

Python3 字典
dict = {key1 : value1, key2 : value2 }
键是唯一的,不可变的(如字符串,数字,元组)
访问字典的值
dict = {'Name': '', 'Age': 7, 'Class': 'First'}print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
修改字典
dict = {'Name': '', 'Age': 7, 'Class': 'First'}dict['Age'] = 8; # 更新 Age
dict['School'] = "教程" # 添加信息
删除字典元素
dict = {'Name': '', 'Age': 7, 'Class': 'First'}del dict['Name'] # 删除键 'Name'
dict.clear() # 删除字典
del dict # 删除字典print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
字典内置函数



Python3 集合
集合是一个无序的不重复元素序列
创建可以使用{} 或者 set();但创建空的必须是set();
- 集合创建
parame = {value01,value02,...}
或者
set(value)
- 集合运算
a = set('abracadabra')
b = set('alacazam')print(a)
print(b)print(a-b)print(a|b)print(a&b)print(a^b){'b', 'd', 'a', 'c', 'r'}
{'l', 'z', 'm', 'a', 'c'}
{'r', 'd', 'b'}
{'l', 'z', 'b', 'm', 'd', 'a', 'c', 'r'}
{'c', 'a'}
{'l', 'z', 'b', 'm', 'r', 'd'}
集合的基本操作
- 添加元素
s.add(x)
s.update( x ) #x可以是多个thisset = set(("Google", "", "Taobao"))
thisset.update({1,3})
print(thisset)
thisset.update([1,4],[5,6])
print(thisset){1, 3, '', 'Taobao', 'Google'}
{1, 3, 4, 5, 6, '', 'Taobao', 'Google'}
- 移除元素
s.remove( x ) #元素不存在会发生错误
s.discard( x ) #元素不存在不会发生错误
- 计算集合元素个数
len(s)
- 清空集合
s.clear()
- 判断是否存在
x in s
集合内置函数


相关文章:
[GN] Python3基本数据类型 -- 与C的差异
文章目录 前言Python3的基本数据类型6个标准的数据类型NumbersStringListtupleSetsDictionaries Python运算符逻辑 运算符成员运算符身份运算符 Python3 数字Python3 序列序列切片序列相加序列相乘序列相关内置函数 Python3 列表访问列表的值更新列表删除列表元素拼接列表嵌套列…...
公司论坛数据构建情感标注数据集思考
公司论坛有一个评论区,会有小伙伴在上面进行评论,聊天,大部份都是积极向上的,但是也有小小的一部分消极的言论,“就像白纸上的一个黑点”,和产品对接的大佬如是说。所以想思考做一个情感标注数据集…...
MSF上线到CS工具中 实战方案(可执行方案)
目录 实际案例背景 步骤详解 1. 获取低权限 Meterpreter 会话 1.1 使用 Metasploit 获取会话 2. 提权到 SYSTEM 权限 2.1 使用 getsystem 自动提权 2.2 如果 getsystem 失败:使用令牌冒充 (incognito 模块) 3. 上线到 Cobalt Strike 3.1 生成 Cobalt Strik…...
ffmpeg中格式转换需要注意点总结
某些封装格式(例如MP4/FLV/MKV等)的H.264码流的SPS和PPS信息存储在AVCodeccontext结构体的extradata中。分离某些封装格式(例如MP4/FLV/MKV等)中的H.264的时候,需要首先写入SPS和PPS,否则会导致分离出来的数据没有SPS、PPS而无法播。需要使用ffmpeg中名称…...
IntelliJ IDEA 2020~2024 创建SpringBoot项目编辑报错: 程序包org.springframework.boot不存在
目录 前奏解决结尾 前奏 哈!今天在处理我的SpringBoot项目时,突然遇到了一些让人摸不着头脑的错误提示: java: 程序包org.junit不存在 java: 程序包org.junit.runner不存在 java: 程序包org.springframework.boot.test.context不存在 java:…...
基于DeepSeek、ChatGPT支持下的地质灾害风险评估、易发性分析、信息化建库及灾后重建
前言: 地质灾害是指全球地壳自然地质演化过程中,由于地球内动力、外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件。在降水、地震等自然诱因的作用下,地质灾害在全球范围内频繁发生。我国不仅常见滑坡灾害,还…...
Websoft9分享:在数字化转型中选择开源软件可能遇到的难题
引言:中小企业数字化转型的必由之路 全球94.57%的企业已采用开源软件(数据来源:OpenLogic 2024报告),开源生态估值达8.8万亿美元。中小企业通过开源软件构建EPR系统、企业官网、数据分析平台等,可节省80%软件采购成本。…...
《在 Ubuntu 22.04 上安装 CUDA 11.8 和 Anaconda,并配置环境变量》
安装 CUDA 11.8 和 Anaconda 并配置环境变量 在本教程中,我们将介绍如何在 Ubuntu 22.04 上安装 CUDA 11.8 和 Anaconda,并配置相应的环境变量。我们还将配置使用 阿里云镜像源 来加速软件包更新。以下是具体步骤。 步骤 1:更新软件源 首先…...
【蓝桥杯】算法笔记3
1. 最长上升子序列(LIS) 1.1. 题目 想象你有一排数字,比如:3, 1, 2, 1, 8, 5, 6 你要从中挑出一些数字,这些数字要满足两个条件: 你挑的数字的顺序要和原来序列中的顺序一致(不能打乱顺序) 你挑的数字要一个比一个大(严格递增) 问:最多能挑出多少个这样的数字? …...
Windows修改hosts文件让向日癸软件联网
Windows修改hosts文件让向日癸软件联网 前言一、查看向日葵软件使用的网址及IP1.清除dns记录2.打开向日葵软件并将dns记录导出txt 二、修改Windows服务器的hosts文件1.winx选择Windows PowerShell(管理员)2.在Windows PowerShell中输入如下内容:3.在hosts文件最后添…...
2021 CCF CSP-S2.括号序列
题目 4091. 括号序列 算法标签: 区间 d p dp dp 思路 区间 d p dp dp添加维表示形态 f [ i ] [ j ] [ k ] f[i][j][k] f[i][j][k], 对于每种形态考虑状态如何进行转移, 枚举的时候不能重复, 星号也要定义唯一的解析方式, 算法时间复杂度 O ( n 3 ) O(n ^ 3) O(n3) 代码 #…...
Uni-app 项目 PDF 批注插件库在线版 API 示例教程
本文章介绍 Uni-app 项目中 PDF 批注插件库 ElasticPDF 在线版 API 示例教程,API 包含 ① 导出批注后PDF数据;② 导出纯批注 json 数据;③ 加载旧批注;④ 切换文档;⑤ 切换用户;⑥ 清空批注 等数据处理功能…...
学透Spring Boot — 010. 单元测试和Spring Test
系列文章目录 这是CSDN postnull 博客《学透Spring Boot》系列的一篇,更多文章请移步:Postnull - 学透Spring Boot系列文章 文章目录 系列文章目录前言1. 基本概念UT 单元测试TDD 测试驱动开发UT测试框架Mock框架 3. Spring Test为什么要用Spring Test引…...
TortoiseGit多账号切换配置
前言 之前配置好的都是,TortoiseGit与Gitee之间的提交,突然有需求要在GitHub上提交,于是在参考网上方案和TortoiseGit的帮助手册后,便有了此文。由于GitHub已经配置完成,所以下述以配置Gitee为例。因为之前是单账号使用…...
3D 地图渲染-区域纹理图添加
引入-初始化地图(关键代码) // 初始化页面引入高德 webapi -- index.html 文件 <script src https://webapi.amap.com/maps?v2.0&key您申请的key值></script>// 添加地图容器 <div idcontainer ></div>// 地图初始化应该…...
【Linux】条件变量封装类及环形队列的实现
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
离线部署kubesphere(已有k8s和私有harbor的基础上)
前言说明:本文是在已有k8s集群和私有仓库harbor上进行离线安装kubesphere;官网的离线教程写都很详细,但是在部署部份把搭建集群和搭建仓库也写一起了,跟着做踩了点坑,这里就记录下来希望可以帮助到需要的xdm。 1.根据官…...
非阻塞IO,fcntl,多路转接,select,poll,epoll,reactor
IO次数会影响程序的效率,在编程中往往会尽量减少IO次数,用以提高程序的效率,例如缓冲区,就是减少IO次数提高效率的一种方式;而IO影响效率的最大原因其实是因为IO等拷贝,在进行IO时往往需要拷贝的数据就绪,或…...
Redis常用的数据结构及其使用场景
字符串(String) string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。 string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据,比如jpg图片或者序列化的对象。 string 类型是 R…...
PhotoShop学习04
1.背景图层 最下面的被锁锁住的图层为背景图层,背景图层充当整个图层的背景,名字标注为背景,无法修改背景图层的排序始终位于图层最底部。 当我想把上方的图层移动到背景图层之后,发现无法移动图层无法移动,把背景图层…...
服务器有2张显卡,在别的虚拟环境部署运行了Xinference,然后又建个虚拟环境再部署一个可以吗?
环境: 云服务器Ubuntu系统 2张 NVIDIA H20 96GB Qwen2.5-VL-72B-Instruct-AWQ Qint4量化 AWQ 是 “Activation - Aware Weight Quantization” 的缩写,即激活感知权重量化。它是一种针对大型模型的先进量化算法,通过在权重量化过程中引入对激活值的感知,最小化量化误差…...
K8s中CPU和Memory的资源管理
资源类型 在 Kubernetes 中,Pod 作为最小的原子调度单位,所有跟调度和资源管理相关的属性都属于 Pod。其中最常用的资源就是 CPU 和 Memory。 CPU 资源 在 Kubernetes 中,一个 CPU 等于 1 个物理 CPU 核或者一个虚拟核,取决于节…...
任务挂起和恢复
任务挂起和恢复API函数 下面用按键和震动传感器验证任务挂起和恢复API函数: PA7接震动传感器,按键引脚为PA0,提前初始化好GPIO引脚 key.c #include "key.h" #include "stm32f10x.h"void KeyInit() {GPIO_InitTypeDef …...
【NLP 55、投机采样加速推理】
目录 一、投机采样 二、投机采样改进:美杜莎模型 流程 改进 三、Deepseek的投机采样 流程 Ⅰ、输入文本预处理 Ⅱ、引导模型预测 Ⅲ、候选集筛选(可选) Ⅳ、主模型验证 Ⅴ、生成输出与循环 骗你的,其实我在意透了 —— 25.4.4 一、…...
如何在 Windows 上安装 Python
Python是一种高级编程语言,由于其简单性、多功能性和广泛的应用范围而变得越来越流行。如何在 Windows 操作系统中安装 Python 的过程相对简单,只需几个简单的步骤。 本文旨在指导您完成在 Windows 计算机上下载和安装 Python 的过程。 如何在 Windows…...
【Groovy快速上手 ONLY ONE】Groovy与Java的核心差异
最近在使用的平台上写脚本的语言是Groovy,所以也学习一下,作为 Java 开发者,Groovy 对我们来说会非常友好,而且它的语法更简洁且支持动态类型,所以其实了解下Java和Groovy的差异点就可以快速上手了,以下是 …...
计算机系统---CPU
定义与功能 中央处理器(Central Processing Unit,CPU),是电子计算机的主要设备之一,是计算机的核心部件。CPU是计算机的运算核心和控制核心,负责执行计算机程序中的指令,进行算术运算、逻辑运算…...
WEB安全--提权思路
一、情形 在我们成功上传webshell到服务器中并拿到权限时,发现我们的权限很低无法执行特定的命令,这时为了能做更多的操作,我们就需要提升权限。 二、方式 2.1、Windows提权 1、普通用户执行systeminfo命令获取服务器的基本信息࿰…...
多layout 布局适配
安卓多布局文件适配方案操作流程 以下为通过多套布局文件适配不同屏幕尺寸/密度的详细步骤,结合主流适配策略及最佳实践总结: 一、创建多套布局资源目录 按屏幕尺寸划分 在 res 目录下创建以下文件夹(根据设备特性自动匹配ÿ…...
selectdb修改表副本
如果想修改doris(也就是selectdb数据库)表的副本数需要首先确定是否分区表,当前没有数据字典得知哪个表是分区的,只能先show partitions看结果 首先,副本数不应该大于be节点数 其次,修改期间最好不要跑业务…...
