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实现DNS正向查询、反向查询的例子
Apr 25 Python
python多进程操作实例
Nov 21 Python
初步剖析C语言编程中的结构体
Jan 16 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 Python
用Python PIL实现几个简单的图片特效
Jan 18 Python
Python中文编码知识点
Feb 18 Python
python简单实现AES加密和解密
Mar 28 Python
Python logging设置和logger解析
Aug 28 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
Python中相见恨晚的技巧
Apr 13 Python
简单且有用的Python数据分析和机器学习代码
Jul 02 Python
教你怎么用Python操作MySql数据库
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
You might like
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
php MessagePack介绍
2013/10/06 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
JS生成随机字符串的多种方法
2014/06/10 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
浅析JavaScript中的array数组类型系统
2016/07/18 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
python连接mysql实例分享
2016/10/09 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
python实现飞机大战小游戏
2019/11/08 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
keras之权重初始化方式
2020/05/21 Python
Python3合并两个有序数组代码实例
2020/08/11 Python
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
运动会领导邀请函
2014/02/05 职场文书
总经理司机岗位职责
2014/02/06 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
js判断两个数组相等的5种方法
2022/05/06 Javascript