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的设计模式编程
Mar 01 Python
Python极简代码实现杨辉三角示例代码
Nov 15 Python
Odoo中如何生成唯一不重复的序列号详解
Feb 10 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
python看某个模块的版本方法
Oct 16 Python
Python 实现微信防撤回功能
Apr 29 Python
新手入门Python编程的8个实用建议
Jul 12 Python
Python数据分析模块pandas用法详解
Sep 04 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
python pptx复制指定页的ppt教程
Feb 14 Python
python操作yaml说明
Apr 08 Python
python 实现有道翻译功能
Feb 26 Python
教你怎么用Python操作MySql数据库
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
You might like
PHP求最大子序列和的算法实现
2011/06/24 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
基于win2003虚拟机中apache服务器的访问
2017/08/01 PHP
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
javascript绘制漂亮的心型线效果完整实例
2016/02/02 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
2018/03/02 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
Python获取好友地区分布及好友性别分布情况代码详解
2019/07/10 Python
Python3 文章标题关键字提取的例子
2019/08/26 Python
python3图片文件批量重命名处理
2019/10/31 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
python实现字典嵌套列表取值
2019/12/16 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
体育运动口号
2014/06/09 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
滞留工资返还协议书
2014/10/19 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
创业计划书之个人工作室
2019/08/22 职场文书