1.字符串
2.列表
3.元组
4.字典
5.集合
6.数据容器的公共方法
7.推导式
8.数据类型转换(二)
前面已经学习了整型,浮点型,布尔型,整型和浮点型都属于数值型
下面继续学习字符串,列表,字典,集合,元组这五个数据类型
数据类型(二) 一.字符串str-
定义:由一对引号包裹的内容叫做字符串类型;也可以使用一对三引号包裹,此时可以实现格式化输出
str1 = """ hello world 123 """ print(str1)
-
特点:
- 不可变类型
- 支持索引下标
- 支持print打印
- 每一个字符在内存中都是单独存储的
-
方法
-
+加号;代表拼接
str1 = 'a' str2 = 'bc' print(str1 + str2)
-
*乘号;代表复制
str1 = 'a' str2 = str1 * 5 print(str2)
-
切片:
口诀:切片其实很简单,只顾头来尾不管,步长为正正向移,步长为负负向移
切片的方向(由头尾索引确定)和步长的方向要保持一致,不然会无数据
str1 = 'abcdefg' str2 = str1[1:5:2] print(str2)
-
查找
查找子串在字符串中是否存在,存在的话返回第一个子串的第一个字符对应的索引下标
返回的索引都是正向索引
字符串的查找方法 查找顺序 子串不存在 str1.find(‘子串’) 从左到右 返回-1 str1.rfind(‘子串’) 从右到左 返回-1 str1.index(‘子串’) 从左到右 报错 str1.rindex(‘子串’) 从右到左 报错 -
统计次数
str1.count(‘子串’)
统计子串在字符串中出现的次数,返回次数值,不存在返回0
-
修改
字符串的修改方法 解释 备注 str1.replace(‘旧串’, ‘新串’, 替换次数) 把字符串中旧串替换为新串 str1.split(‘子串’) 把字符串按照子串进行切割,返回一个列表 字符串 -> 列表 子串不存在则返回原串 ‘子串’.join(列表) 把列表中每个元素之间用子串连接,拼接成一个字符串 列表 -> 字符串 列表中的元素必须是字符串类型 str1.strip(‘子串’) 去掉字符串首尾的子串 常用来去除首尾空格 不写子串或子串不存在则会返回原串 -
判断
判断子串是否在字符串中存在 解释 备注 子串 in 字符串 子串是否在字符串中 以下方法全部返回true或者false 子串 not in 字符串 子串是否不在字符串中 str1.startswith(‘子串’) 是否以子串开头 str1.endswith(‘子串’) 是否以子串结尾 str1.isalpha() 是否全部是字母 str1.isdigit() 是否全部是数字 -
大小写转换
字符串大小写转换 str1.upper() 把字符串转换成大写 str1.lower() 把字符串转换成小写 str1.title() 把字符串首字母大写
-
-
字符串的遍历
字符串可以使用循环进行遍历
-
定义
list1 = [] list2 = list() list3 = [1, 2.3, 'a', False]
-
特点
- 可变类型
- 支持索引下标
- 支持print打印
- 可以存储多个不同数据类型的数据,包括数据容器
-
方法
-
增加
列表方法之增加 解释 备注 list1.append(元素) 在列表中追加元素 尾部追加 list1.extend(元素或者数据序列) 追加元素或者对数据序列的每一个元素依次追加 字符串被当做数据序列依次进行追加 list1.insert(索引下标, 元素) 在指定索引处追加元素 -
删除
列表方法之删除 解释 备注 del list1[索引] 删除列表中指定索引的元素 list1.pop(索引) 删除指定索引的元素 默认删除最后一个;有返回值,返回值是被删除的元素 list1.remove(元素) 删除指定的元素 del list1 删除整个列表,内存中清除 -
查询
列表方法之查询 解释 备注 in/not in list1.index(元素) 查找元素在列表中的索引 返回索引;不存在报错 list1.count(元素) 查找元素在列表中出现的次数 list1[索引] 直接查找索引对应的某个元素 len(list1) 得到列表的长度 -
修改
列表方法之修改 解释 备注 list1[索引] = 值 直接通过索引修改某个值 list1.reverse() 翻转列表 list1.sort() 对列表进行排序 默认升序;reverse=True代表降序 sort()方法的key参数与lambda表达式结合使用,对列表+字典的数据结构进行排序
list1 = [ {'name': '张三', 'age': 18}, {'name': '李四', 'age': 22}, {'name': '王五', 'age': 20} ] # 按照年龄升序排列 list1.sort(key=lambda x: x['age']) print(list1)
-
-
列表的遍历
使用循环对列表进行遍历
-
列表的嵌套
list1 = [ [1, 2, 3], ['a', 'b', 'c'] ] # 打印2 print(list1[0][1])
-
定义
tuple1 = () tuple2 = tuple() tuple3 = (1, 2.3, 'a', False) # 和列表相比,只有一个数据的时候也要加逗号 tuple4 = (1,)
-
特点
- 不可变类型
- 支持索引下标
- 支持print打印
- 可存储多个不同数据类型的数据
- 只有一个数据的时候也要加逗号
-
方法:
-
查询
元组方法之查询 解释 tuple1[索引] 直接通过索引查询对应元素 tuple1.index(元素) 查找元素在元组中的索引 tuple1.count(元素) 查找元素出现的次数 in/ not in 判断元素是否在元组中 len(tuple1) 得到元组的长度
-
-
定义
dict1 = {} dict2 = dict() dict3 = {'name': '张三', 'age': 20} -
特点
- 查询神器
- 存储一个事物,这个事物包含多个属性和值,按照(k:v)键值对的形式存储
- 可变类型
- 不支持索引,但是可以通过键值对形式查询
- 支持print打印
- 在字典中不区分整型和浮点型:因此1和1.0同时作为key的时候,字典只会保留靠后面的那个键值对,前面的那个会被删除掉
-
方法
-
新增/修改
字典方法之新增/修改 解释 dict1[key] = value 如果key存在,那么就是修改 如果key不存在,那么就是新增 -
删除
字典方法之删除 解释 备注 del dict1[key] 删除指定的键值对 del dict1 删除整个字典 dict1.clear() 清空字典 字典还在,内容被清空而已 -
查询
字典方法之查询 解释 备注 dict1.keys() 返回所有的key 类似列表的格式返回 dict1.values() 返回所有的value 类似列表的格式返回 dict1.items() 返回所有的键值对 类似列表+元组的格式返回 enumerate 把一个数据容器(例如列表)转换成类似字典的格式 dict1[key] 查询某个键对应的值 如果有重复的键,那么查询最后一个对应的值 enumerate方法演示
list1 = ['a', 'b', 'c'] # enumerate方法 for i in enumerate(list1): print(i)
-
-
字典的遍历
结合字典查询的方法进行
dict1 = {'name': '张三', 'age': 20} # 遍历所有的key for k in dict1.keys(): print(k) # 遍历所有的value for v in dict1.values(): print(v) # 遍历所有的键值对 for k, v in dict1.items(): print(k, v)
-
定义
set1 = {1, 2.3, 'a', False} set2 = set() # 会把每个字符拆出来存储 set3 = set('abcde') -
特点
- 天生去重
- 无序
- 可变类型
- 不支持索引下标,因为数据无序
- 支持print打印
-
方法
-
新增
集合方法之新增 解释 备注 set1.add(元素) 增加元素到集合中 无序,所以不知道增加到哪个位置 -
删除
集合方法之删除 解释 备注 set1.pop() 默认删除第一个元素 返回值是被删除的元素 set1.remove(元素) 删除指定的元素 del set1 删除整个集合 -
查询
集合方法之查询 解释 备注 in/not in
-
| 公共方法一览 | 解释 | 适用于 |
|---|---|---|
| + | 合并操作 | 字符串,列表,元组 |
| * | 复制操作 | 字符串,列表,元组 |
| in/not in | 判断元素是否存在于数据容器中 | 字符串,列表,元组,字典,集合 |
| len() | 求数据容器的长度 | 字符串,列表,元组,字典,集合 字典中求解的是键值对的对数 |
| max(),min() | 求数据容器中最值 | 列表,元组,集合 |
列表推导式,字典推导式,集合推导式
暂时只学习列表推导式
# 第一种,普通版本 list1 = [i for i in range(10)] # 第二种,带if语句 list2 = [i for i in range(10) if i % 2 == 0] # 第三种,嵌套列表 list3 = [(i, j) for i in range(3) for j in range(4)]八.数据类型转换(二)
| 数据类型转换(二) | 解释 | 备注 |
|---|---|---|
| str() | 转换成字符串 | |
| tuple() | 转换成元组 | 用于处理数据使其不可修改,一般是列表转元组 |
| list() | 转换成列表 | 方便处理数据,一般是元组转列表 |
| set() | 转换成集合 | 用于自动去重,一般是列表转集合 |



