【Python 基础教程】Python语言中的数据类型(三)

简介: 【Python 基础教程】Python语言中的数据类型(三)

前言


前面我们提到了Python数据类型中的内置数值类型与字符串类型。今天学习一下Python的序列数据类型,要知道的是在Python中没有数组这一数据结构,也没有提供直接创建数组的功能,但是可以使用内置的序列数据类型实现数组的某些功能。


一、什么是序列数据类型?


序列数据类型是Python中的一种基础的数据结构,是一组有顺序的元素的集合。

这个集合内可以有多个元素也可以不包含元素。

总的来说包含元组(tuple)、列表(list)、字符串(str)、字节数据(bytes与bytearray)

如果根据对象可变不可变进行划分的话

可变序列为:列表、字节数组

不可变序列为:字符串、元组、字节序列


二、序列数据类型的基本操作


1.序列的通用方法


支持序列类型的内置函数:len()、max()、min()、sum()。其中使用sum()函数的时候

必须是数值型序列,如果有非数值型的序列则将抛出TypeError,对于字符串、字节数

据也会导致该结果。其余函数在使用的时候对字符按照字典序进行挑选。


2.通过索引访问数据


序列中的各个类型均是可以迭代的对象,可以直接使用for 循环进行迭代获取每一个数据。

也可以通过下标索引进行指定位置上的数据获取。序列的第一个元素是X[0],序列的最后一个

元素是X[len(X)-1]。序列的下标越界或者不是整数均会导致异常。

序列还支持切片操作(如下)


st="asfdcac"
#打印所有的数据
print(st[::])
#逆序打印字符串
print(st[-1::-1])


3.同类型的序列进行拼接


序列可以使用操作符+连接两个序列,形成一个新的序列对象。

也可以通过*进行序列的重复。


a01718496fdb466a9aa54a9ff0dd3e37.png


4.判断序列成员


在本文中前面提到了可以使用循环对序列进行迭代,找出每一个元素

除了这一功能,Python中还有直接判断序列中是否包含某成员

语法规则如下:

x in s【如果x在序列s中则为True】

x not in s【如果x不在序列s中为True】

s.count(x)【统计X在序列s中出现的次数】

s.index(X)【找到X在s中第一次出现的坐标,找不到就报错】


5.序列的排序操作


通过内置函数sorted()可以对序列进行排序,并将排序后的结果进行返回。

def sorted(*args, **kwargs):

这里可以传参一个可迭代的序列,reverse可以指定升序还是降序当reverse为

True时排序结果为降序。key参数是用于计算比较键值的函数

26e9deeef6da4bbb8f460a2ad3cebde0.png


6.内置函数all()与any()


这两个函数的作用就是判断所有的数据是否全为True

对于all()而言所有的成员均为True时结果才为True

对于any()而言只要有成员为True时结果就为True



7.序列的拆分


①有限个数变量进行序列的拆分


在本方法下要确定序列的成员个数与接受变量个数保持一致。


变量1,变量2,变量3=序列


②不确定个数成员变量进行拆分


本方法使用与接受序列中特定位置的成员,使用*进行不确定个数成员变量的接受。

每次拆分*控制的变量只允许出现一次。


例如:
  mystr="nfklsdnfj0sd.....asdfl"
  s1,*args,s2=mystr
  此时s1,s2会分别接收n与l其余的将会让args进行接受。


三、列表


列表的介绍

前面提到了列表是一个可变的序列,意思就是可以直接对列表对象本身进行修改删除等操作

列表还是Python中一组有序的数据结构,在Python中没有数组,可以使用列表起数组的作用(✪ω✪)


1.创建列表


有三种方法

1.字面量直接创建

2.使用list()与可迭代对象创建

3.列表解析表达式


代码如下:


# 直接声明
lis0=list(i for i in range(0,101,10))
print(lis0)
lis1=[1,2,3,4]
# 迭代器进行声明
lis2=[ i for i in range(0,101,10)]
print(lis1,lis2)
#字面量
lis3=['Hello',123,'print',bool]
print(lis3)
'''


2.向列表内添加数据


代码如下:


# 直接在列表末尾添加
lis1.append(2)
print(lis1)
# 切片法添加元素(直接追加另外一个列表的一部分元素)内存地址不变
print(id(lis1))
lis1.extend(lis2)
lis1.extend(lis2[1:5])
print(lis1,id(lis1))
# 在指定的位置插入指定的元素999
lis1.insert(1,999)
print('11111111111',lis1)


3.删除列表内的数据


代码如下


# 什么也不填,默认删除的是列表的最后一个元素
lis1.pop()
print(lis1)
# 将列表内的指定下标元素进行删除
lis1.pop(1)
print(lis1)
# 删除指定的元素
lis1.remove(80)
print(lis1)
# 切片法删除元素
# 切片法删除元素后,列表的地址会发生改变*****
print(id(lis1),id(lis1[1:4]),lis1[1:4])
lis1[1:4]
# 清空列表
lis1.clear()
print(lis1)
# 删除列表(再使用该列表的时候会报错)
del lis1
# print(lis1)
'''列表内元素的修改'''
print(lis2)
# 对指定索引的元素进行修改
lis2[0]=100
print(lis2)
# 切片法修改一段列表
# 会将新指定的列表,替换掉指定索引区间的元素,区间超出的话,会直接在末尾添加
# 切片内的元素个数,与所要改成的切片元素个数,不一致没关系直接进行替换
lis2[10:]=[1,2,3]
print(lis2)
# del也可以对指定位置元素进行删除
del lis[1]
del lis[2:4]
# 也可以直接对列表的某段进行赋空[]达到删除的效果
lis2[2:4]=[]


三、元组


元组是不可变序列,所以不支持增删,这里仅仅对他的特性以及注意点进行介绍。


元组也是一组有序序列,包含零个或多个对象的引用,与列表十分相似但又有许多不同.

具体来说有以下特点:

元组是不可变序列仅支持读取

1、不支持添加元素【增】

2、不支持删除元素【删】

3、不支持修改元素(修改操作的步骤是:先删除、再添加)【改】

4、支持2种查找元素【查】

a、根据下标查找元素,常称为【访问】元素,时间复杂度为O(1)

b、根据元素获取下标,常称为【查找】元素,时间复杂度为O(n)

如果元组中只有一个数据,那么数据后的逗号不可省略

元组的括号可以省略。

元祖的声明与遍历如下


# 元组的声明一
s=('Tom',666,'嗨')
print(s,type(s))
# 元组的声明二
p=tuple(('Tom',666,'嗨'))
print(p)
# 空元组
ss=()
print(ss,type(ss))
# 单元素元组--要加,否则会会直接转换成字符串类型
sss=('fuck')
print(sss,type(sss))
# 元组的括号可以省略
sss='fuck',
print(sss,type(sss))
tp=('nabd',['123',123],'李四')
print(tp)
# 元组对应位置的元素不会变,但元组对应位置元素里面的内容可以改变
tp[1].insert(1,666)
print(tp)
# 元组的遍历
for temp in s:
    print(temp)


四、字符串


在前面一篇博客已经提到过字符串了,这里就不再啰嗦一遍了。


五、字节序列


字节序列可以分为可变字节序列(bytearray)与不可变字节序列(bytes)。

使用字面量生成字节数列只需要在字符串前加上b即可。

eg:

str1=b"Hello world"

也可以使用bytes()或者bytearray()进行字节序列的声明

其中参数可以传递可迭代对象,只不过可迭代对象的成员要是在0-255的整数。

bytes或者bytearray的方法不接受字符串参数,只接受对应类型的参数。否则报错

字节序列支持序列的基本操作。

可以通过字符串编码得到字节序列,也可以通过解码字符序列得到字符串

使用的函数是decode()与encode()。使用过程要注意编码、解码规则。


总结


本篇博客针对Python序列进行了讲解。序列在学习使用Python中还是经常使用的,希望大家好好掌握,你们有没有好的使用技巧,评论区告诉博主吧。(^_−)☆



相关文章
|
4天前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
27天前
|
人工智能 搜索推荐 数据可视化
用 Python 制作简单小游戏教程:手把手教你开发猜数字游戏
本教程详细讲解了用Python实现经典猜数字游戏的完整流程,涵盖从基础规则到高级功能的全方位开发。内容包括游戏逻辑设计、输入验证与错误处理、猜测次数统计、难度选择、彩色输出等核心功能,并提供完整代码示例。同时,介绍了开发环境搭建及调试方法,帮助初学者快速上手。最后还提出了图形界面、网络对战、成就系统等扩展方向,鼓励读者自主创新,打造个性化游戏版本。适合Python入门者实践与进阶学习。
116 1
|
2月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
212 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
12天前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
2月前
|
Python
Python技术解析:了解数字类型及数据类型转换的方法。
在Python的世界里,数字并不只是简单的数学符号,他们更多的是一种生动有趣的语言,用来表达我们的思维和创意。希望你从这个小小的讲解中学到了有趣的内容,用Python的魔法揭示数字的奥秘。
85 26
|
4月前
|
机器学习/深度学习 存储 设计模式
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
|
1月前
|
Python
Python编程基石:整型、浮点、字符串与布尔值完全解读
本文介绍了Python中的四种基本数据类型:整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。整型表示无大小限制的整数,支持各类运算;浮点型遵循IEEE 754标准,需注意精度问题;字符串是不可变序列,支持多种操作与方法;布尔型仅有True和False两个值,可与其他类型转换。掌握这些类型及其转换规则是Python编程的基础。
161 33
|
13天前
|
数据采集 分布式计算 大数据
不会Python,还敢说搞大数据?一文带你入门大数据编程的“硬核”真相
不会Python,还敢说搞大数据?一文带你入门大数据编程的“硬核”真相
34 1

热门文章

最新文章

推荐镜像

更多