Python数据类型最全知识总结


Posted in Python onMay 31, 2021

一、什么是数据类型

其实可以明白数据类型指的就是变量值的不同类型,姓名可能是一种数据类型、年龄可能是一种数据类型、爱好可能又是另一种数据类型

二、字符串类型

字符串类型所表示的数据是常量,它是一种不可变数据类型

如何表示

str = 'zhangsan'
str = "zhangsan"
str = '''zhangsan''' # 可以实现换行
str = """zhangsan""" # 可以实现换行
str = r'zhangsan\n'  # r可以取消转移字符的功能

相关方法

Python数据类型最全知识总结

举例:

find('str')      # 找不到为-1
index('str')     # 找不到报错
isalnum('str')   # 由字母或数字组成
isspace('str')   # 由空格组成
split('str')     # 分割之后是列表
rsplit('str',2)  # 当分割次数有限制时与split有区别
partition('str') # 分割之后是三元组
capitalize()     # 字符串首字母大写
title()          # 每个单词首字母大写
ljust()          # 左对齐加空格

取值与切片操作

str = '123456789‘

# 下标取值
str[0] # 1
str[-1] # 9

# 切片语法 m[start, end, step]
str[1:3]    # 23
str[3:1]    # 空
str[0:]     # 123456789
str[:3]     # 123
str[::]     # 123456789
str[::-1]   # 987654321

str[0:4:1]  # 1234
str[0:4:2]  # 13
str[0:4:0]  # 报错
str[0:4:-1] # 空
str[4:0:-1] # 5432

str[-3:-1]    # 78
str[-1:-3]    # 空
str[-3:-1:-1] # 空
str[-3:-1:1]  # 78
str[-1:-3:-1] # 98
str[-1:-3:1]  # 空

编码与解码操作

chr(65)                # 编码转为字符
ord('我')              # 字符转为编码
'str'.encode('utf-8')  # 将字符串转编码
'str'.decode('utf-8')  # 将字符串转解码

格式化输出操作

普通格式化

%s(字符串)、 %d(整形)、 %f(浮点型)、 %%(%)、 %x(十六进制)、 %X(十六进制)

name = 'zhangsan'
age = 18

print('姓名:', name, ',年龄:', age, sep='')
print('姓名:%s,年龄:%d' %(name,age))
————————————————
版权声明:本文为CSDN博主「ProChick」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45747519/article/details/117379242

format格式化

# 默认
print('姓名{},年龄{}'.format('张三',18))
# 下标赋值
print('姓名{1},年龄{0}'.format(18,'张三'))
# 变量名赋值
print('姓名{name},年龄{age}'.format(name='zhangsan',age=18))
# 列表赋值
list = ['zhangsan',18]
print('姓名{},年龄{}'.format(*list))
# 字典赋值
dict = {"name":'zhangsan',"age":18}
print('姓名{name},年龄{age}'.format(**dict))

三、列表类型

列表类型所代表的数据元素有序且可以重复、可以修改

如何表示

mylist = ['张三',18]
mylist = list( ('zhangsan',18) ) # 将可迭代对象转化为列表

相关方法

添加元素

list = [1,2,3]
# 追加
list.append(4)     # [1,2,3,4]
# 插入
list.insert(0,0)   # [0,1,2,3,4]

修改元素

list = [1,2,3]
# 修改指定位置元素
list[0] = 0    # [0,2,3]
list[2] = 0    # [0,2,0]

删除元素

list = [1,2,3,4,5,6]
# 删除最后一个
list.pop()         # [1,2,3,4,5]
# 删除指定位置
list.pop(0)        # [2,3,4,5]
# 删除指定元素
list.remove(2)     # [3,4,5]
# 清空
list.clear()       # []

查询元素

list = [1, 2, 3, 2, 1]
# 查找元素位置
list.index(1)    # 0
# 查找元素个数
list.count(1)    # 2

合并列表

list1 = [1,2,3]
list2 = [4,5,6]
# 合并
list1.extend(list2) # [1,2,3,4,5,6]
print(list1+list2)  # [1,2,3,4,5,6]

排序

list = [2, 3, 1]
# 正序
list.sort()                                 # [1,2,3]
# 产生新对象并正序
new_list = sorted(list)                     # [1,2,3]
# 倒序
list.sort(reverse=True)                     # [3,2,1]
# 倒序
list.reverse()                              # [3,2,1]


# 自定义排序规则(一般用于字典类型的比较)
list = [
    {'name':'zhangsan',age:18},
    {'name':'lisi',age:20},
    {'name':'wangwu',age:19}
]

list.sort(key = lambda item : item['age'])

拷贝

list = [1, 2, 3]

# 是浅拷贝
new_list = list.copy() # [1, 2, 3]

嵌套

# 相当于二维数组
list = [[1,2],[3,4],[5,6]]

推导式

list = [i for i in range(1,3)] # [1,2]
list = [(i,j) for i in range(1,3) for j in range(1)] # [(1,0),(2,0)]

四、元组类型

元组类型所表示的数据元素有序且可以重复,但不可以修改

如何表示

# 表示多个元素
tuple = (1,2,'3') 
# 表示1个元素
tuple = (True,)

相关方法

查询元素

tuple = (1,True,'3',True)

tuple.index(0)    # 1
tuple.count(True) # 2

合并

tuple1 = (1,2)
tuple2 = (True,False)

print(tuple1+tuple2) # (1,2,True,False)

五、字典类型

字典类型所表示的数据元素无序,Key不可以重复(只能是不可变数据类型),Value可以修改(可以为任意数据类型)

如何表示

student = {"name":'zhangsan',"age":20}

相关方法

查询元素

student = {"name":'zhangsan',"age":20} 

print(student["age"])          # 20
print(student["birth"])        # 报错

print(student.get("age"))      # 20
print(student.get("birth"))    # None
print(student.get("birth",'2000-10-10'))    # 2000-10-10d

# 获取所有Key
print(student.keys())          # ['name','age']
# 获取所有Value
print(student.values())        # ['zhangsan',20]
# 获取所有Key-Value
print(student.items())         # [('name':'zhangsan'),('age':20)]

添加、修改元素

student = {"name":'zhangsan',"age":20} 

student["name"] = 'lisi'
print(student) # student = {"name":'lisi',"age":20} 

student["sex"] = '男'
print(student) # student = {"name":'lisi',"age":20,"sex":'男'}

删除元素

student = {"name":'zhangsan',"age":20} 

# 删除Key-Value,返回Value
result = student.pop("name")
print(student) # student = {"age":20} 
print(result)  # zhangsan 

# 删除Key-Value,返回Key-Value
result = student.popitem("name")
print(student) # student = {"age":20} 
print(result)  # ('name','zhangsan') 

# 清空
student.clear()
print(result)  # {}

合并

student = {"name":'zhangsan',"age":20} 
student_add = {"sex":'男'}

student.update(student_add)
print(student) # {"name":'zhangsan',"age":20,"sex":'男'}

推导式

student = {"name":'zhangsan',"age":20} 

student_reverse = {v:k for k,v in student.items()}
print(student_reverse) # {"zhangsan":'name',"20":age}

六、集合类型

集合类型所表示的数据元素无序且不可以重复,不可以修改

如何表示

# 有元素的集合
set = {1,'我',True} 
# 空集合
set()

相关方法

添加元素

set = {1,'我',True} 

set.add('zhangsan')
print(set)             # {1,'我',True,'zhangsan'}

删除元素

set = {1,'我',True} 

# 随机删除一个元素
set.pop()
print(set)             # {'我',True} 

# 删除指定元素
set.remove('True')
print(set)             # {1,'我'} 

# 清空
set.clear()
print(set)             # set()

合并

set = {1,'我',True} 

# 两个集合合并后产生新的集合
new_set = set.union( {True,False} ) 
print(new_set)                       # {1,'我',True,False} 

# 将一个可迭代对象合并到原有集合中
set.update(['False'])
print(set)                           # {1,'我',True,'False'}

运算

set1 = {1,2,3} 
set2 = {3,4,5}

# 差集
print(set1 - ste2)  # {1,2}
print(set2 - ste1)  # {4,5}
# 交集
print(set1 & ste2)  # {3}
# 并集
print(set1 | ste2)  # {1,2,3,4,5}
# 差并集
print(set1 ^ ste2)  # {1,2,4,5}

七、五种数据类型所支持的运算符比较

Python数据类型最全知识总结

八、数据的序列化和反序列化

序列化操作

将数据从内存持久化保存到硬盘的过程

----(将数据转化为字符串)----
import json

list = ['name','age','city']
file = open('test.txt','w',encoding='utf8')

file.write(repr(list))       # 第一种方式
file.write(str(list))        # 第二种方式
file.write(json.dumps(list)) # 第三种方式
json.dump(list,file)         # 第四种方式

file.close()
----(将数据转化为二进制)----
import pickle

list = ['name','age','city']
file = open('test.txt','wb',encoding='utf8')

file.write(pickle.dumps(list)) # 第一种方式
pickle.dump(list,file)         # 第二种方式

file.close()

反序列化操作

将数据从硬盘加载到内存的过程

# test.txt
["name","age","city"]
----(将字符串转化为数据)----
import json

file = open('test.txt','r',encoding='utf8')

list1 = json.load(file)               # 第一种方式
print(list1) # ['name','age','city']
list2 = json.loads(file.read())       # 第二种方式
print(list2) # ['name','age','city']

file.close()
----(将二进制转化为数据)----
import pickle

file = open('test.txt','rb',encoding='utf8')

list1 = pickle.loads(file.read())       # 第一种方式
print(list1) # ['name','age','city']
list2 = pickle.load(file)               # 第二种方式
print(list2) # ['name','age','city']

file.close()

到此这篇关于Python数据类型最全知识总结的文章就介绍到这了,更多相关Python数据类型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python去除所有html标签的方法
May 05 Python
Pandas 合并多个Dataframe(merge,concat)的方法
Jun 08 Python
python生成器与迭代器详解
Jan 01 Python
python中的数据结构比较
May 13 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
详解python中的模块及包导入
Aug 30 Python
python 两个数据库postgresql对比
Oct 21 Python
pandas-resample按时间聚合实例
Dec 27 Python
Django 允许局域网中的机器访问你的主机操作
May 13 Python
pycharm如何使用anaconda中的各种包(操作步骤)
Jul 31 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 Python
利用Pycharm + Django搭建一个简单Python Web项目的步骤
Oct 22 Python
教你怎么用Python操作MySql数据库
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
You might like
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
php中字符串和正则表达式详解
2014/10/23 PHP
Firefox div高度自适应
2009/04/28 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
JQuery判断radio单选框是否选中并获取值的方法
2019/01/17 jQuery
详解Vue路由自动注入实践
2019/04/17 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python爬取51job中hr的邮箱
2016/05/14 Python
Python实现七彩蟒蛇绘制实例代码
2018/01/16 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
python字符串常用方法
2018/06/14 Python
浅谈python写入大量文件的问题
2018/11/09 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
pytorch进行上采样的种类实例
2020/02/18 Python
python生成任意频率正弦波方式
2020/02/25 Python
大学生如何写自荐信
2014/01/08 职场文书
租赁意向书范本
2014/04/01 职场文书
终止劳动合同协议书
2014/04/14 职场文书
敬老模范事迹
2014/05/21 职场文书
市场策划求职信
2014/08/07 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
超市主管竞聘书
2015/09/15 职场文书
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android