序列类型
- 定义:在python中,序列就是一组按照顺序排序的值【数据集合】 
- python内置的序列类型: - 字符串
- 列表
- 元组
 
- 特点:支持索引、切片操作 - 索引:正负表示方向,从0开始   
- 切片:截取字符串的部分内容,[start : end : step] - start:起点下标
- end:终点下标
- step:步长,默认为1
 
 
字符串
不可变数据类型
定义
- 定义: - 1 
 2- str = 'hello world' 
 print(type(str))- 运行结果:   
- 获取下标对应内容: - 1 - print(str[0]) - 运行结果:   
- 遍历: - 1 
 2- for i in str: 
 print(i, end=' ') # end=' '的作用是:不换行输出- 运行结果:   
常用方法
 
- 获取字符串长度: - 1 
 2- str = 'I Love Python' 
 print(len(str))- 运行结果:   
- 首字母变大写: - 1 
 2- name = 'bob' 
 print(name.capitalize())- 运行结果:   - 使用占位符输出: - 1 - print('首字母大写后:%s' % name.capitalize()) #会使用format亦可 - 运行结果:   
- 去除前后空格: - 1 
 2- str = ' hello world ' 
 print(str.strip())- 运行结果:   - 去除字符串左(右)边的空格: - 1 - print(str.lstrip()) #去除左边的空格,右边同理 - 运行结果:   - 注意:该方法仅能将字符串前后的空格去除,中间空格无效果。 
- 复制字符串: - 1 
 2
 3- a = 'Bob' 
 b = a
 print(b)- 运行结果:   - 查看内存地址: - 1 
 2- print(id(a)) 
 print(id(b))- 运行结果:   - 上图内存地址相同说明前面的 - =为复制操作。
- 查找操作: - 1 
 2- str = 'I Love Python' 
 print(str.find('o'))- 运行结果:   - 注意: - 该方法仅能返回该字符出现的第一个位置,若查询不到返回 -1
- 使用 index() 方法也可以获取字符下标,区别是index找不到下标时会报错
 
- 判断是否以*开头/结尾: - 1 
 2- str = 'I Love Python' 
 print(str.startswith('I')) #开始- 运行结果:   
- 转换大/小写: - 1 
 2
 3- str = 'I Love Python' 
 print(str.upper()) #大写
 print(str.lower()) #小写- 运行结果:   
切片操作
- 输出 2-5 之间的字符串: - 1 
 2- str = 'I Love Python' 
 print(str[2:5])- 运行结果:   
- 从 2 开始到最后: - 1 
 2- str = 'I Love Python' 
 print(str[2:])- 运行结果:   - 注意:开始(0)、结束可省略不写。 
- 倒序输出: - 1 
 2- str = 'I Love Python' 
 print(str[::-1])- 运行结果:   
列表
定义
- 定义: - 1 
 2- list = [] 
 print(type(list))- 运行结果:   
- 特点: - 支持增删查改
- 列表中的数据可变化(内存地址不会改变)
- 使用[]来表示列表类型,数据项(任何类型的数据)之间用逗号分隔
- 支持索引和切片操作
 
常用方法
- 列表长度: - 1 
 2- list = [1, 2, 3, 4] 
 print(len(list))- 运行结果:   
- 查找: - 输出第一项: - 1 
 2- list = [1, 2, 3, 4] 
 print(list[0])- 运行结果:   
- 输出第二个及以后的项: - 1 
 2- list = [1, 2, 3, 4] 
 print(list[1:]) #切片操作- 运行结果:   
- 倒序输出列表项: - 1 
 2- list = [1, 2, 3, 4] 
 print(list[::-1])- 运行结果:   
- 多次输出: - 1 
 2- list = [1, 2, 3, 4] 
 print(list * 3)- 运行结果:   
- 范围内查找(index): - 1 
 2- listA = ['nihao', 1, 0.2, True] 
 print(listA.index(0.2, 0, 3)) #返回该数据在列表中的下标,若不存在会报错- 运行结果:   - 注意:index方法中三个参数分别是 查询的内容、起始下标、终止下标。 
 
- 增加: - 使用 - append追加:- 1 
 2
 3- list = [1, 2, 3, 4] 
 list.append('nihao')
 print('追加后:', list)- 运行结果:   - 注意:无论追加什么类型的数据,只占一个位置。 
- 使用 - insert插入:- 1 
 2
 3- list = [1, 2, 3, 4] 
 list.insert(1, 'aaa')
 print(list)- 运行结果:   - 注意: - insert方法有两个参数,分别为要插入的位置和数据项
- 上面提到的两种增加数据的方法均只能插入一个数据项
 
- 批量增加 - extend:- 1 
 2
 3
 4- list = [1, 2, 3, 4] 
 Range = list(range(10)) # 将range容器强转为list类型
 listA.extend(Range)
 print(listA)- 运行结果:   - 注意:extend方法的作用是将两个list中的数据合并为一个list,所以下面的代码亦能实现该操作: - 1 
 2
 3- list = [1, 2, 3, 4] 
 listA.extend([0,1,2,3,4,5,6,7,8,9])
 print(listA)
 
- 修改: - 通过下标操作: - 1 
 2
 3- list = [1, 2, 3, 4] 
 listA[0] = 'enen'
 print(listA)- 运行结果:   
- 删除: - 删除单个数据(del关键字+下标实现): - 1 
 2
 3- list = [1, 2, 3, 4] 
 del listA[0]
 print(listA)- 运行结果:   - 注意:这种删除方法适用于删除单个数据项。 
- 批量删除数据(切片操作实现): - 1 
 2
 3- list = [1, 2, 3, 4] 
 del listA[1:2]
 print(listA)- 运行结果:   
- 移除指定的数据(remove): - 1 
 2
 3- listA = ['nihao', 1, 0.2, True] 
 listA.remove(0.2)
 print(listA)- 运行结果:   
- 移除指定下标的数据(pop): - 1 
 2
 3- listA = ['nihao', 1, 0.2, True] 
 listA.pop(1)
 print(listA)- 运行结果: - 注意:要区分 - remove和- pop的区别- remove:移除指定内容的数据项
- pop:移除指定下标的数据项
 
 
元组
是一种不可变的序列,创建之后不能做任何修改
定义
- 定义: - 1 
 2- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 print(tupleA)- 运行结果:   
- 特点: - 创建后数据值不能修改 
- 使用 ( ) 来定义一个元组,数据之间使用逗号分隔 
- 元组中的数据可以是任意类型的数据 
- 当元组中只有一个数据时要加上逗号,否则解释器会当做整型来处理 
- 支持切片操作 
 
查询
- 下标: - 1 
 2- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 print(tupleA[3])- 运行结果:   
- 循环遍历: - 1 
 2
 3- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 for i in tupleA:
 print(i,end=' ')- 运行结果:   
- 切片操作: - 切片正序输出: - 1 
 2- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 print(tupleA[::])- 运行结果:   
- 切片倒序输出: - 1 
 2- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 print(tupleA[::-1])- 运行结果:   
- 易错: - 步长: - 1 
 2- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 print(tupleA[::-2]) #步长为2,隔一个取一个- 运行结果:   
- 切片方向: - 1 
 2- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 print(tupleA[-2:-1:]) #从左向右,从-2位置到-1位置连续取- 运行结果:   - 注意:根据上图可知,当元组只有一个数据时要添加一个逗号避免被解释器当做整型 
- 验证元组不可变: - 1 
 2
 3
 4- tupleA = () 
 print(id(tupleA))
 tupleA = ('nihao',)
 print(id(tupleA))- 运行结果:   - 注意:据上图可知,相同名称的元组再次被赋值后内存地址会发生改变,以此可验证元组数据不可修改的特性 
 
 
注意
- 尽管元组数据不能修改但元组中列表的数据可修改 - 1 
 2
 3- tupleA = (1, 2.001, True, ['nihao', 'python']) 
 tupleA[3][0] = 'haha'
 print(tupleA)- 运行结果:   
- 强制类型转换 - 1 
 2- tupleC=tuple(range(10)) 
 print(type(tupleC))- 运行结果:   
- 统计数据出现的次数: - 1 
 2- tupleC=tuple(range(10)) 
 print(tupleC.count(1))- 运行结果:   
字典
python中重要的数据类型,以键值对形式创建并用大括号包裹
定义
- 定义: - 1 
 2- dictA = {} 
 print(type(dictA))- 运行结果:   
- 特点: - 不属于序列类型(无序),没有下标概念
- 用{}来表示字典对象,键值对之间使用逗号分隔
- 键是不可变的的类型(元组、字符串),值可以是任意类型
- 键要唯一,否则后者覆盖前者
 
操作
- 增加: - 1 
 2
 3- dictA = {} 
 dictA['name'] = '菜徐坤'
 print(dictA)- 运行结果:   
- 查询: - 查询值: - 1 
 2
 3- dictA = {} 
 dictA['name'] = '菜徐坤'
 print(dictA['name'])- 运行结果:   
- 查询所有的键: - 1 
 2- dictA = {'name': '菜徐坤', 'age': 30, 'school': '北京电影学院'} 
 print(dictA.keys())- 运行结果:   
- 查询所有的值: - 1 
 2- dictA = {'name': '菜徐坤', 'age': 30, 'school': '北京电影学院'} 
 print(dictA.values())- 运行结果:   
- 查询所有的键值对: - 1 
 2- dictA = {'name': '菜徐坤', 'age': 30, 'school': '北京电影学院'} 
 print(dictA.items())- 运行结果:   
- 遍历字典: - 1 
 2
 3
 4
 5- dictA = {'name': '菜徐坤', 'age': 30, 'school': '北京电影学院'} 
 for key,values in dictA.items(): #第一种遍历方法
 print('{}:{}'.format(key,values))
 #for item in dictA.items(): #第二种遍历方法
 # print(item, end=' ')- 运行结果:   
 
- 修改: - 1 
 2
 3
 4
 5- dictA = {} 
 dictA['name'] = '菜徐坤'
 print(dictA)
 dictA['name'] = '肖战'
 print(dictA)- 运行结果:   
- 删除: - del关键字: - 1 
 2
 3- dictA = {'name': '菜徐坤', 'age': 30, 'school': '北京电影学院'} 
 del dictA['name']
 print(dictA)- 运行结果:   
- pop方法: - 1 
 2
 3- dictA = {'name': '菜徐坤', 'age': 30, 'school': '北京电影学院'} 
 dictA.pop('name')
 print(dictA)- 运行结果:   
 
公用方法
合并(+)
使用于字符串、列表、元组
- 字符串: - 1 
 2
 3- strA = 'hello ' 
 strB = 'python'
 print(strA + strB)- 运行结果:   
- 列表: - 1 
 2
 3- listA = ['hello'] 
 listB = ['python']
 print(listA + listB)- 运行结果:   
- 元组: - 1 
 2
 3- tupleA = ('hello',) 
 tupleB = ('python',)
 print(tupleA + tupleB)- 运行结果:   
复制(*)
适用于字符串、列表、元组
- 字符串: - 1 
 2- strB = 'python' 
 print(strB * 3)- 运行结果:   
- 列表: - 1 
 2- listB = ['python'] 
 print(listB * 3)- 运行结果:   
- 元组: - 1 
 2- tupleB = ('python',) 
 print(tupleB * 3)- 运行结果:   
判断(in)
适用于字符串、列表、元组、字典
| 1 | strA='hello python' | 
运行结果:
 
注意:
- 返回值为 Bool 类型
- 当字典类型的数据使用 in 做判断时,通常判断的是 key 而不是 value






