经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
Python数据类型最全知识总结
来源:jb51  时间:2021/5/31 18:23:33  对本文有异议

一、什么是数据类型

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

二、字符串类型

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

如何表示

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

相关方法

在这里插入图片描述

举例:

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

取值与切片操作

  1. str = '123456789‘
  2.  
  3. # 下标取值
  4. str[0] # 1
  5. str[-1] # 9
  6.  
  7. # 切片语法 m[start, end, step]
  8. str[1:3] # 23
  9. str[3:1] # 空
  10. str[0:] # 123456789
  11. str[:3] # 123
  12. str[::] # 123456789
  13. str[::-1] # 987654321
  14.  
  15. str[0:4:1] # 1234
  16. str[0:4:2] # 13
  17. str[0:4:0] # 报错
  18. str[0:4:-1] # 空
  19. str[4:0:-1] # 5432
  20.  
  21. str[-3:-1] # 78
  22. str[-1:-3] # 空
  23. str[-3:-1:-1] # 空
  24. str[-3:-1:1] # 78
  25. str[-1:-3:-1] # 98
  26. str[-1:-3:1] # 空

编码与解码操作

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

格式化输出操作

普通格式化

  1. %s(字符串)、 %d(整形)、 %f(浮点型)、 %%(%)、 %x(十六进制)、 %X(十六进制)
  2.  
  3. name = 'zhangsan'
  4. age = 18
  5.  
  6. print('姓名:', name, ',年龄:', age, sep='')
  7. print('姓名:%s,年龄:%d' %(name,age))
  8. ————————————————
  9. 版权声明:本文为CSDN博主「ProChick」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
  10. 原文链接:https://blog.csdn.net/qq_45747519/article/details/117379242

format格式化

  1. # 默认
  2. print('姓名{},年龄{}'.format('张三',18))
  3. # 下标赋值
  4. print('姓名{1},年龄{0}'.format(18,'张三'))
  5. # 变量名赋值
  6. print('姓名{name},年龄{age}'.format(name='zhangsan',age=18))
  7. # 列表赋值
  8. list = ['zhangsan',18]
  9. print('姓名{},年龄{}'.format(*list))
  10. # 字典赋值
  11. dict = {"name":'zhangsan',"age":18}
  12. print('姓名{name},年龄{age}'.format(**dict))

三、列表类型

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

如何表示

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

相关方法

添加元素

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

修改元素

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

删除元素

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

查询元素

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

合并列表

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

排序

  1. list = [2, 3, 1]
  2. # 正序
  3. list.sort() # [1,2,3]
  4. # 产生新对象并正序
  5. new_list = sorted(list) # [1,2,3]
  6. # 倒序
  7. list.sort(reverse=True) # [3,2,1]
  8. # 倒序
  9. list.reverse() # [3,2,1]
  10.  
  11.  
  12. # 自定义排序规则(一般用于字典类型的比较)
  13. list = [
  14. {'name':'zhangsan',age:18},
  15. {'name':'lisi',age:20},
  16. {'name':'wangwu',age:19}
  17. ]
  18.  
  19. list.sort(key = lambda item : item['age'])

拷贝

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

嵌套

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

推导式

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

四、元组类型

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

如何表示

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

相关方法

查询元素

  1. tuple = (1,True,'3',True)
  2.  
  3. tuple.index(0) # 1
  4. tuple.count(True) # 2

合并

  1. tuple1 = (1,2)
  2. tuple2 = (True,False)
  3.  
  4. print(tuple1+tuple2) # (1,2,True,False)

五、字典类型

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

如何表示

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

相关方法

查询元素

  1. student = {"name":'zhangsan',"age":20}
  2.  
  3. print(student["age"]) # 20
  4. print(student["birth"]) # 报错
  5.  
  6. print(student.get("age")) # 20
  7. print(student.get("birth")) # None
  8. print(student.get("birth",'2000-10-10')) # 2000-10-10d
  9.  
  10. # 获取所有Key
  11. print(student.keys()) # ['name','age']
  12. # 获取所有Value
  13. print(student.values()) # ['zhangsan',20]
  14. # 获取所有Key-Value
  15. print(student.items()) # [('name':'zhangsan'),('age':20)]

添加、修改元素

  1. student = {"name":'zhangsan',"age":20}
  2.  
  3. student["name"] = 'lisi'
  4. print(student) # student = {"name":'lisi',"age":20}
  5.  
  6. student["sex"] = '男'
  7. print(student) # student = {"name":'lisi',"age":20,"sex":'男'}

删除元素

  1. student = {"name":'zhangsan',"age":20}
  2.  
  3. # 删除Key-Value,返回Value
  4. result = student.pop("name")
  5. print(student) # student = {"age":20}
  6. print(result) # zhangsan
  7.  
  8. # 删除Key-Value,返回Key-Value
  9. result = student.popitem("name")
  10. print(student) # student = {"age":20}
  11. print(result) # ('name','zhangsan')
  12.  
  13. # 清空
  14. student.clear()
  15. print(result) # {}

合并

  1. student = {"name":'zhangsan',"age":20}
  2. student_add = {"sex":'男'}
  3.  
  4. student.update(student_add)
  5. print(student) # {"name":'zhangsan',"age":20,"sex":'男'}

推导式

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

六、集合类型

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

如何表示

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

相关方法

添加元素

  1. set = {1,'我',True}
  2.  
  3. set.add('zhangsan')
  4. print(set) # {1,'我',True,'zhangsan'}

删除元素

  1. set = {1,'我',True}
  2.  
  3. # 随机删除一个元素
  4. set.pop()
  5. print(set) # {'我',True}
  6.  
  7. # 删除指定元素
  8. set.remove('True')
  9. print(set) # {1,'我'}
  10.  
  11. # 清空
  12. set.clear()
  13. print(set) # set()

合并

  1. set = {1,'我',True}
  2.  
  3. # 两个集合合并后产生新的集合
  4. new_set = set.union( {True,False} )
  5. print(new_set) # {1,'我',True,False}
  6.  
  7. # 将一个可迭代对象合并到原有集合中
  8. set.update(['False'])
  9. print(set) # {1,'我',True,'False'}

运算

  1. set1 = {1,2,3}
  2. set2 = {3,4,5}
  3.  
  4. # 差集
  5. print(set1 - ste2) # {1,2}
  6. print(set2 - ste1) # {4,5}
  7. # 交集
  8. print(set1 & ste2) # {3}
  9. # 并集
  10. print(set1 | ste2) # {1,2,3,4,5}
  11. # 差并集
  12. print(set1 ^ ste2) # {1,2,4,5}

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

在这里插入图片描述

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

序列化操作

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

  1. ----(将数据转化为字符串)----
  2. import json
  3.  
  4. list = ['name','age','city']
  5. file = open('test.txt','w',encoding='utf8')
  6.  
  7. file.write(repr(list)) # 第一种方式
  8. file.write(str(list)) # 第二种方式
  9. file.write(json.dumps(list)) # 第三种方式
  10. json.dump(list,file) # 第四种方式
  11.  
  12. file.close()
  1. ----(将数据转化为二进制)----
  2. import pickle
  3.  
  4. list = ['name','age','city']
  5. file = open('test.txt','wb',encoding='utf8')
  6.  
  7. file.write(pickle.dumps(list)) # 第一种方式
  8. pickle.dump(list,file) # 第二种方式
  9.  
  10. file.close()

反序列化操作

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

  1. # test.txt
  2. ["name","age","city"]
  1. ----(将字符串转化为数据)----
  2. import json
  3.  
  4. file = open('test.txt','r',encoding='utf8')
  5.  
  6. list1 = json.load(file) # 第一种方式
  7. print(list1) # ['name','age','city']
  8. list2 = json.loads(file.read()) # 第二种方式
  9. print(list2) # ['name','age','city']
  10.  
  11. file.close()
  1. ----(将二进制转化为数据)----
  2. import pickle
  3.  
  4. file = open('test.txt','rb',encoding='utf8')
  5.  
  6. list1 = pickle.loads(file.read()) # 第一种方式
  7. print(list1) # ['name','age','city']
  8. list2 = pickle.load(file) # 第二种方式
  9. print(list2) # ['name','age','city']
  10.  
  11. file.close()

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号