python的高级数据类型

简介: 简介:学习python的学习笔记 1内容大多数来自于B站《求知讲堂》,根据自己的学习,排版整理的笔记,作为自己复习时使用《求知讲堂》视频链接:https://b23.tv/xwTPkP

学习python的学习笔记 1

内容大多数来自于B站《求知讲堂》,根据自己的学习,排版整理的笔记,作为自己复习时使用

《求知讲堂》视频链接:https://b23.tv/xwTPkP


一、序列


序列:在python当中 序列就是一组按照顺序排列的值【数据集合】


在python中 存在三种内置的序列类型:

列表、元组、字符串


优点:可以支持索引和切片的操作

特征:第一个正索引为0,指向的是左端,第一个索引为负数的时候,指向的是右端,也就是说,索引的正负号代表着方向。


切片:【高级特性】可以根据下表来获取序列对象的任意[部分]数据

语法结构:[start: end :step] step默认1


二、列表(list):


python当中非常重要的数据结构,是一种有序的数据集合


特点:

1:支持增删改查

2:列表中的数据是可以变化的【数据项可以变化,内存地址不会改变】

3:用[ ] 来表示列表类型,数据项之间用逗号来分割,注意:数据项可以是任何类型的数据

4:支持索引和切片来进行操作


(一)


li=[1,2,3,“你好”] #[ ]表示列表类型
print(len(li)) #len函数可以获取到列表对象中的数据个数


(二)


查找

listA=[‘abcd’,785,12.23,‘qiuzhi’,True]
print(listA) #输出完整的列表
print(listA[0]) #输出第一个元素
print(listA[1:3]) #从第二个开始到第三个元素
print(listA[2:]) #从第三个元素开始到最后所有的元素
print(listA[::-1]) #负数从右像左开始输出
print(listA*3) #输出多次列表中的数据【复制】

Y7MY2F7O2HI8I{]H{0`M`(D.png


(三)


增加


listA=[‘abcd’,785,12.23,‘qiuzhi’,True]
print(‘追加之前’,listA)
listA.append([‘fff’,‘ddd’]) #追加操作
listA.append(8888)
print(‘追加之后’,listA)
listA.insert(1,‘这是我刚插入的数据’) #插入操作 需要执行一个位置插入,这里的1代表着位置。
print(listA)


O%8EW4KDQ6[8{2KLKA$)WY8.png


listA=[‘abcd’,785,12.23,‘qiuzhi’,True]
rsData=list(range(10)) #强制转换为list对象
print(type(rsData))
listA.extend(rsData) #拓展,拓展的内容是( )中的内容, 可以理解为批量添加
listA.extend([11,22,33,44])
print(listA)


~FUZ]ON5%LZQG)JCKEY8~2W.png


(四)


修改

listA=[‘abcd’,785,12.23,‘qiuzhi’,True]
print(‘修改之前’,listA)
listA[0]=333.6
print(‘修改之后’,listA)

7L)X5%_KMQ@$GI4B@P{54V2.png


(五)


删除list数据项

listB=list(range(10,40))
print(listB)
del listB[0] #删除列表中第一个元素
del listB[1:3] #批量删除多项数据 slice
listB.remove(20) #移除指定的元素 参数是具体的数据值
listB.pop(1) #移除制定的项 参数是索引值
print(listB)
print(listB.index(36,20,25)) #返回的是一个索引下标


}95F~U09C)KYL8`44H7NJPN.png


三、元组:


是一种不可变的序列,在创建之后不能做任何的修改

特点:

1:不可变

2:用( )创建元组类型,数据项用逗号来分割

3:可以是任何的类型

4:当元组中只有一个元素时,要加上逗号,不然后解释器会当做其他类型来处理

5:同样可是支持切片操作


(一)


查找

tupleA=(‘abcd’,89,9.12,‘peter’,[11,22,33])
for item in tupleA:
print(item,end=’ ')


{_S@X5]1)RDGTTBF@`SYWVE.png


tupleA=(‘abcd’,89,9.12,‘peter’,[11,22,33])
print(tupleA[2:4])
print(tupleA[::-1])
print(tupleA[::-2]) #表示反转字符串 每隔两个去一次
print(tupleA[::-3]) #表示反转字符串 每隔三个去一次
print(tupleA[-2:-1 :]) #倒着取下标 为-2 到 -1 区间的
print(tupleA[-4:-2:]) #倒着取下标 为-2 到 -1 区间的


X3PWI86[XU4QL8V$OH)A)`V.png


(二)


修改(只能修改元组中的列表)

tupleA=(‘abcd’,89,9.12,‘peter’,[11,22,33])
tupleA[4][0]=285202 #可以对元组中的列表类型的数据进行修改第一个[ ]代表元组的位置,第二个[ ]代表位于第四位的列表的内容位置
print(tupleA)
print(type(tupleA[4]))


KLXL]CA`_L%F`DWON94NM{4.png


(三)

tupleB=(‘1’,) # 当元组中只有一个数据项的时候,必须要在第一个数据项后面加上 逗号
print(type(tupleB))


(四)


统计

tupleC=(1,2,3,4,3,4,4,1)
print(tupleC.count(4)) #可以统计元素出现的次数


)N57Y~H(ZTMCH`_`Z})9@%3.png


四、字典:


也是python中重要的数据类型,字典是有 键值对 组成的集合,通常使用 键来访问数据,效率非常高,和list一样 支持对数据的添加、修改、删除

特点:

1:不是序列类型 没有下标的概念,是一个无序的 键值集合,是内置的高级数据类型

2:用{} 来表示字典对象,每个键值对用逗号分隔

3:键 必须是不可变的类型【元组、字符串】 值可以是任意的类型

4: 每个键必定是惟一的,如果存在重复的键,后者会覆盖前者

(一)


创建及添加

dictA={“pro”:‘艺术’,‘shcool’:‘北京电影学院’} #创建一个字典
dictA[‘name’]=‘李易峰’ #添加字典数据,key:value,前者为键,后者为值
dictA[‘age’]=‘30’
dictA[‘pos’]=‘歌手’
print(dictA) #输出完整的字典
print(len(dictA)) #输出数据项长度
print(type(dictA))#输出数据类型


G1Q9}J]5EQ@PLT59VHD)QSC.png


(二)


获取及修改

dictA={“pro”:‘艺术’,‘shcool’:‘北京电影学院’} #创建一个字典
dictA[‘name’]=‘李易峰’ #添加字典数据,key:value,前者为键,后者为值
dictA[‘age’]=‘30’
dictA[‘pos’]=‘歌手’
print(dictA[‘name’]) #通过键获取对应的值
dictA[‘name’]=‘谢霆锋’ #修改键对应的值
dictA[‘shcool’]=‘香港大学’
dictA.update({‘height’:1.80}) #可以添加或者更新
print(dictA)
print(dictA.keys())# 获取所有的键
print(dictA.values())# 获取所有的值


P$V30TW@NAT9QMVI1@5PLFG.png


(三)


删除操作

dictA={“pro”:‘艺术’,‘shcool’:‘北京电影学院’} #创建一个字典
dictA[‘name’]=‘李易峰’ #添加字典数据,key:value,前者为键,后者为值
dictA[‘age’]=‘30’
dictA[‘pos’]=‘歌手’
del dictA[‘name’] #通过指定键进行删除
print(dictA)


WU9GP}B`(38QQG`535~HQIG.png


dictA={“pro”:‘艺术’,‘shcool’:‘北京电影学院’} #创建一个字典
dictA[‘name’]=‘李易峰’ #添加字典数据,key:value,前者为键,后者为值
dictA[‘age’]=‘30’
dictA[‘pos’]=‘歌手’
dictA.pop(‘age’) #通过指定键进行删除
print(dictA)


104KDDYEJ(L}9A5E5Q{`)1S.png


以上两个注意对比


(四)


排序

dictA={“pro”:‘艺术’,‘shcool’:‘北京电影学院’} #创建一个字典
dictA[‘name’]=‘李易峰’ #添加字典数据,key:value,前者为键,后者为值
dictA[‘age’]=‘30’
dictA[‘pos’]=‘歌手’
print(sorted(dictA.items(),key=lambda d:d[0]))# 如何排序 按照key排序
print(sorted(dictA.items(),key=lambda d:d[1]))# 按照value排序


]DS4OV%D010]9VBY5PUYJM5.png


(五)


字典拷贝

dictA={“pro”:‘艺术’,‘shcool’:‘北京电影学院’} #创建一个字典
dictA[‘name’]=‘李易峰’ #添加字典数据,key:value,前者为键,后者为值
dictA[‘age’]=‘30’
dictA[‘pos’]=‘歌手’
import copy
dictB=copy.copy(dictA) #浅拷贝
dictC=copy.deepcopy(dictA) #深拷贝
print(id(dictC))
print(id(dictA))
dictB[‘name’]=‘peter’
dictC[‘name’]=‘刘德华’
print(dictC)
print(dictA)
print(dictB)


ZS%_$GBQ(MJF5Y`%~6R(_`T.png


五、字符串操作


1、

Test=‘python’
print(type(Test))
print(‘获取第一个字符%s’%Test[0])
print(‘获取第二个字符%s’%Test[1])
for item in Test:
print(item,end=’ ') #对Test进行遍历

}_N]T2T3[}}4LERQ9)MSBI7.png


2、

name=‘peter’
print(‘姓名首字母转换大写%s’%name.capitalize()) #capitalize 首字母变大写


QNTE0Z(NY(OCUR@W8MN6GKF.png


3、

a=’ hello ’
b=a.strip() #去除字符串中两边的空格
print(b)


{[K~H%7`S4[0ELQS8A3[}]S.png


a=’ hello ’
print(a.lstrip()) #删除左边的空格
print(a.rstrip()) #删除右边的空格


450JYBFS9EG0@@VV3{OAM[N.png


4、

a=’ hello ’
print(‘a的内存地址%d’%id(a)) #id函数 可以查看一个对象的内存地址


1F{CKA33KD]ZXJ`01LF]8UI.png


5、

dataStr=‘I love Python’
print(dataStr.find(‘M’)) #find函数可以查找目标对象在序列对象中的为值,如果没找到就返回-1


0Q75L7O7WRKA4_$SBIGW]@0.png


dataStr=‘I love Python’
print(dataStr.index(‘W’)) #index函数检测字符串中是否包含子字符串 返回的是下标值
#index如果没有找到对象的数据 便会报异常,而find函数不会,找不到返回-1


FT80S]CJ~WRABWF4$JUYOTO.png


6、

dataStr=‘I love Python’
print(dataStr.startswith(‘I’)) #判断开头
print(dataStr.endswith(‘n’))#判断结尾


2Q2TDKG3F8%059__HUSYITC.png


7、

dataStr=‘I love Python’
print(dataStr.lower()) #转换成小写
print(dataStr.upper())#转换成大写


DA71$9{5[0DOUTMB0S7$KLK.png


8、

strMsg=‘hello world’
#slice [start: end :step] 左闭右开 start<=value
print(strMsg) #输出完整的数据
print(strMsg[0])
print(strMsg[2:5]) #2-5下标之间的数据
print(strMsg[2:]) #第三个字符到最后
print(strMsg[:3]) # strMsg[0:3]=strMsg[:3]
print(strMsg[::-1]) #倒叙输出 负号表示方向 从右边往左去遍历


LI$W$D96A}C6HOVLF_V068J.png


9、

# list 合并
listA=list(range(10))
listB=list(range(11,20))
print(listA+listB)

@A9YJQSGEJO(K8X}4HU1RK4.png


10、

# 字符串合并
strA=‘人生苦短’
strB=‘我用Python’
print(strA+strB)


T(ADJJL7M@H$S33H432L(P7.png


11、

# 复制 *
listA=list(range(10))
print(listA*3)


YMN)]M0I[SX5AMSV_RBO5D9.png


12、

# in 对象是否存在 结果是一个bool值
strA=‘人生苦短’
listA=list(range(10))
dictA={“name”:“peter”}
print(‘我’ in strA) #False
print(9 in listA) #True
print(“name” in dictA) #True

%T@H(21G2P[GM2QI@41{7QY.png



相关文章
|
4天前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
82 1
|
5天前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
100 0
|
2月前
|
机器学习/深度学习 新能源 调度
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
220 1
|
2月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
1月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
1月前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
101 0
|
3月前
|
存储 Web App开发 前端开发
Python + Requests库爬取动态Ajax分页数据
Python + Requests库爬取动态Ajax分页数据
|
3月前
|
JSON API 数据格式
Python采集京东商品评论API接口示例,json数据返回
下面是一个使用Python采集京东商品评论的完整示例,包括API请求、JSON数据解析
|
6天前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
14天前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。

推荐镜像

更多