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爬取最好大学网大学排名
Feb 24 Python
python+ffmpeg视频并发直播压力测试
Mar 06 Python
Python+selenium 获取一组元素属性值的实例
Jun 22 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
详解opencv中画圆circle函数和椭圆ellipse函数
Dec 27 Python
Python unittest框架操作实例解析
Apr 13 Python
Pytorch 卷积中的 Input Shape用法
Jun 29 Python
python3跳出一个循环的实例操作
Aug 18 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
python 基于wx实现音乐播放
Nov 24 Python
详解Python中下划线的5种含义
Jul 15 Python
教你怎么用Python操作MySql数据库
Django集成富文本编辑器summernote的实现步骤
Python基础知识学习之类的继承
May 31 #Python
Django实现聊天机器人
Python趣味挑战之教你用pygame画进度条
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 #Python
解决pytorch读取自制数据集出现过的问题
You might like
在WIN98下以apache模块方式安装php
2006/10/09 PHP
php session 错误
2009/05/21 PHP
php 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
json跟xml的对比分析
2008/06/10 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
Javascript加载速度慢的解决方案
2014/03/11 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
2014/07/17 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
[34:39]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#1COL VS EG第二局
2016/03/05 DOTA
python返回昨天日期的方法
2015/05/13 Python
Python内建数据结构详解
2016/02/03 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
Python中元组,列表,字典的区别
2017/05/21 Python
Python实现的建造者模式示例
2018/08/06 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
Python进行特征提取的示例代码
2020/10/15 Python
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
保荐人的岗位职责
2013/11/19 职场文书
班组长安全职责
2014/01/05 职场文书
仓库组长岗位职责
2014/01/29 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
单位一把手群众路线四风问题整改措施
2014/09/25 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫