文章目录
- 一. 序列类型
- 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 (1 given)
>>> 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
{'美国': '华盛顿'}
>>> del d['美国']
>>> d
{}