文章目录
- 一. 序列类型
- 1. 元组类型
- 2. 列表类型(list)
- 2.1. 列表创建
- 2.2 列表操作
- 2.3. 列表元素遍历 ing
- 元素列表求平均值
- 删除散的倍数
- 二. 集合类型(set)
- 三. 映射类型(map)
- 1. 字典创建
- 2. 字典操作
- 3. 字典遍历 ing
- 3.1. 计算消费额
- 3.2. 词频统计
多个数据(可以是不同类型)组合成一个整体的数据集合称为组合数据类型,组合数据类型分为三类:序列类型、集合类型、映射类型。
一. 序列类型
Python中很多数据类型都是序列类型,其中比较重要的是字符串 (str)、元组(tuple)、列表(list)。
- 字符串可以看成一个单字符的有序组合,属于序列类型,同时也是一种基本数据类型。
- 元组是包含0个或多个数据项的不可变序列类型,即元组一旦生成,任何数据项都不可替换或删除。
- 列表则是一个可以修改数据项的序列类型,使用非常灵活。
只要是序列类型,都可以使用相同的索引体系,Python中的序列支持双向索引,即正向递增序号和反向递减序号。
正向递增索引从左到右依次递增,第1个元素的索引号为0,第2个元 素的索引号为1,以此类推。反向递减索引从右到左依次递减,最后一个 元素的索引号为-1,倒数第二个为-2,以此类推。
序列类型有12个通用的操作符和函数,如表所示。
1. 元组类型
元组一旦创建就不能被修改。一般用于表达固定数据项、函数返回值、多变量同时赋值、循环遍历等情况。
Python构建元组的方式非常简单,可以用tuple()函数构建,
- tuple()函数中的参数是一个可迭代的数据,若没有传入参数,则创建空元组。
- 可以直接用圆括号包含多个使用逗号隔开的元素来创建元组。
- 非空元组的括号可以省略。
>>>tuple[(1,2,3)]tuple[1,2,3]>>>tuple[1,2,3]tuple[1,2,3]>>>tuple('Python')('P','y','t','h','o','n')>>>st='学号','姓名','专业'>>>st('学号','姓名','专业')>>>course=('高等数学','英语','python程序设计')>>>course[1]'英语'>>>course[0]'高等数学'2. 列表类型(list)
列表(list)是包含0个或多个对象引用的有序序列,
- 与元组不同,
列表的长度和内容都是可变的,可自由对列表中的数据项进行增加、删除 或替换- 列表没有长度限制,元素的类型
可以各不相同,使用非常灵活。
2.1. 列表创建
# 1. list()函数将已有的元组字符串转换为列表。# 元组转换位列表>>>tuple[1,2]tuple[1,2]>>>tp=(10,20,30)>>>list(tp)[10,20,30]# 2. 直接 用[]号创建 存放不同元素>>>ls=[12,'abc',['red','green']]>>>ls[2][1]'green'2.2 列表操作
# 浅拷贝>>>lt=ls# 修改值>>>ls[1]='python'>>>ls[1]'python'>>>lt[12,'python',['red','green']]# 深拷贝# 或通过list()或 [ ]创建才会生成新列表>>>lt=ls.copy()>>>lt[12,'python',['red','green']]
- 替换:单个元素替换;范围替换;范围步长替换、
- 删除:范围删除;范围步长删除
- 列表叠加;列表翻倍:所有元素重复n倍;列表追加、列表在某个位置插入
- 清空列表;取出列表指定位置元素并删除;删除第一个出现的元素x
- 列表复制;
- 列表反转(不需要参数);列表排序。
>>>lt.reverse(1)TypeError:list.reverse()takes no arguments(1given)>>>lt.reverse()>>>lt['1',1,['red','green'],'python',12,['red','green'],'python',12]2.3. 列表元素遍历 ing
对列表进行遍历使用for-in结构,可对列表中的元素按序访问。
如果对元素访问时不需要删除操作,则可直接遍历列表。如果对元素 访问时涉及删除或改变元素位置等操作,则应先对原列表进行复制,在复 制的列表中遍历,而在原列表中操作,这样可以保证每个元素都能被遍历 并进行操作。
元素列表求平均值
删除散的倍数
二. 集合类型(set)
定义
- 集合中的元素不可重复,元素类型只能是
固定数据类型,不能是可变数据类型。- 集合是无序的组合,没有索引和位置的概念,不能分片,集合中的元素可以动态增加或删除。
创建
- 集合用大括号{}表示,各元素之间用逗号隔开。
- set()函数进行集合的创建
>>>s1={100,'python',2.9}>>>s1{'python',2.9,100}>>>s2=set('python')>>>s2{'p','h','o','t','y','n'}>>>s3=set(('python',123))>>>s3{'python',123}集合的操作符有10个
返回一个新集合或更新S
- 包含在S但不含T中元素:-
- 同时包含在S且T中的元素:&
- 取非交集:^
- 两者所有元素:|
- 子集与真子集:>、>=
三. 映射类型(map)
- 映射类型每一个元素都是一个键-值对,即元素是(key,value),元素之间是无序的
- 键(key)表示一个属性,也可理解为一个类别或项目,值(value) 是属性的内容。键-值对将映射关系结构化,用于存储和表达。
- 在实际应用中有很多键-值对的案例,如通信录中姓名和电话号码、 用户信息中用户名与密码、邮政编码与运输成本、国家名称与首都等。
1. 字典创建
这种通过任意键信息查找一组数据中值信息的过程称为映射,在 Python中,映射类型主要以字典(dict)进行体现。
- 字典是包含0个或多个键-值对的无序集合,
没有长度限制,可以根据键索引值的内容,且键具有唯一性。 - Python中可以通过函数dict()来创建空字典,也可以通过大括号{} 来创建。
>>>student={}>>>student=dict()>>>d={"中国":"北京","美国":"华盛顿"}# 获取某一个元素>>>d["中国"]'北京'# 修改值>>>d["中国"]="上海">>>d["中国"]'上海'输出顺序:字典输出数据的顺序可能与创建之初的顺序不一致。其原因是字典是集合类型的延续,所以各元素之间没有顺序之分。
2. 字典操作
- 返回键列表;值列表;键值列表
- 获取某个键的值;元组形式返回
- 获取值,并删除此键值对;删除所有;删除某一个
- 判断key是否存在
>>>d={"中国":"北京","美国":"华盛顿","英国":"伦敦"}>>>d{'中国':'北京','美国':'华盛顿','英国':'伦敦'}>>>d.keys()dict_keys(['中国','美国','英国'])>>>list(d.values())['北京','华盛顿','伦敦']>>>list(d.items())[('中国','北京'),('美国','华盛顿'),('英国','伦敦')]>>>d.get('中国','上海')'北京'>>>d.pop('法国','巴黎')'巴黎'>>>d{'中国':'北京','美国':'华盛顿','英国':'伦敦'}>>>d.pop('中国','巴黎')'北京'>>>d{'美国':'华盛顿','英国':'伦敦'}>>>d.popitem()('英国','伦敦')>>>d{'美国':'华盛顿'}>>>deld['美国']>>>d{}