文章目录
一、集合类型
1、定义:
集合是多个元素的无序组合
-集合类型与数学中的集合概念一致
-集合元素之间无序,每个元素唯一,不存在相同元素
-集合元素不可更改,不能是可变数据类型
不可变数据类型包括:整数、浮点数、复数、字符串、元组等
可变数据类型包括:列表
2、表示和建立:
集合用大括号{ }表示,元素间用逗号分隔
-建立集合类型用{}或set()
-建立空集合类型,必须使用set()
**注意:**使用set()建立集合是将提供的字符串拆分,拆分后的每一个元素作为集合的元素
>>> A = {"a",123,("a",123)}
>>> print(A)
{123, 'a', ('a', 123)}#集合的元素可以是多种数据结构
>>> B = set("pypy123")
>>> print(B)
{'y', 'p', '1', '3', '2'}#set()函数是将提供的内容拆分后放到集合中
>>> C = {"a","b","a","b"}
>>> print(C)
{'a', 'b'}#集合中的每个元素必须是唯一的
3、集合操作符
4、集合处理方法
5、集合类型的应用场景
1、包含关系比较
>>> "p" in {"p","y",123}
True
>>> {"p","y"}>={"p","y",123}
False
2、最典型:数据去重
>>> ls = ["p","p","y","y",123]
>>> s = set(ls)#利用了集合无重复元素的特点
>>> print(s)
{123, 'y', 'p'}
>>> s = list(s)
>>> print(s)#再通过list函数转成列表
[123, 'y', 'p']
二、序列类型
1、定义
:序列是具有先后关系的一组元素
-序列是一维元素向量,元素类型可以不同
-类似数学元素序列
-元素间由序号引导,通过下标访问序列的特定元素
注意:序列是一个基类类型,它衍生出三种数据类型,包括字符串类型、元组类型以及列表类型,序列类型的所有操作在这三种类型中都是适用的,而这三种类型又有各自独特操作方法。
序号:与字符串类似,序列可用序号来标定每个元素,不同的是字符串的元素都是字符,而序列的元素有多种类型
2、序列处理函数及方法
>>> ls = ["abc",123,"python"]
>>> ls[::-1]
['python', 123, 'abc']
>>> ls = ["abc",123,"python"]
>>> len(ls)
3
>>> s = "python123.io"
>>> max(s)#按字母序排列
'y'
3、元组类型及操作
定义:元组是序列类型的一种扩展
-元组是一种序列类型,一旦创建就不能被修改
-使用小括号( )或tuple( )创建,元素间用逗号,分隔
-可以使用或不使用小括号
>>> creature = "cat","dog","tiger","human"
>>> print(creature)
('cat', 'dog', 'tiger', 'human')
>>> color = "red","blue",creature
>>> print(color)
('red', 'blue', ('cat', 'dog', 'tiger', 'human'))#元组内可包含元组
注意:
1、元组继承了序列类型的全部通用操作
2、元组因为创建后不能修改,因此没有特殊操作
3、使用或不使用小括号
>>> color = "red","blue",creature
>>> color[-1][2]#[-1]元素是一个元组,故可用[2]继续索引
'tiger'
4、列表类型及操作
(1)定义
:列表是序列类型的一种扩展,十分常用
1、列表是一种序列类型,创建后可以随意被修改
2、使用方括号或list( )创建,元素间用逗号,分隔
3、列表中各元素类型可以有多种,如整型数字,浮点型,字符串以及对象等
>>> ls = [ "cat","dog","tiger","human"]
>>> print(ls)
['cat', 'dog', 'tiger', 'human']
>>> lt = ls
>>> print(lt)
['cat', 'dog', 'tiger', 'human']
List1=[1,2,3,'hello world','3.1415926',[1,2,3]]
print(List1)
Output:
[1, 2, 3, 'hello world', '3.1415926', [1, 2, 3]]
注意:方括号[ ]真正创建一个列表,赋值仅传递引用,即赋值仅仅是将列表又定义了一个名字,上例中lt和ls指向的是同一段内存空间
(2)列表类型操作函数和方法
>>> ls = ["cat","dog","tiger",1024]
>>> ls[1:2] = [1,2,3,4]
>>> print(ls)
['cat', 1, 2, 3, 4, 'tiger', 1024]
>>> ls = ["cat","dog",1234]
>>> ls.append("tiger")
>>> print(ls)
['cat', 'dog', 1234, 'tiger']
>>> ls.insert(2,"human")
>>> print(ls)
['cat', 'dog', 'human', 1234, 'tiger']
>>> ls.reverse()
>>> print(ls)
['tiger', 1234, 'human', 'dog', 'cat']
#extend() 函数用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)。
aList = [123, 'xyz', 'zara', 'abc', 123];
bList = [2009, 'manni'];
aList.extend(bList)
print(aList)
Output:
[123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']
注意:
1、append是增加一个元素,该元素可以为列表;extend是增加一个序列的多个值
(3)小测
#定义空列表lt
>>> lt = []
#向lt新增5个元素
>>> lt += ["a","b",1,2,3]
>>> lt
['a', 'b', 1, 2, 3]
#修改lt中第2个元素
>>> lt[1] = "c"
#向lt中第二个位置增加一个元素
>>> lt.insert(1,"d")
>>> lt
['a', 'd', 'c', 1, 2, 3]
#从lt中第一个位置删除一个元素
>>> del lt[0]
>>> lt
['d', 'c', 1, 2, 3]
#删除lt中第1-3个元素
>>> del lt[0:3]
>>> lt
[2, 3]
#判断lt中是否包含数字0
>>> 0 in lt
False
#向lt新增数字0
>>> lt.append(0)
>>> lt
[2, 3, 0]
#返回数字0所在lt中的索引
>>> lt.index(0)
2
#lt的长度
>>> len(lt)
3
#lt中的最大元素
>>> max(lt)
3
#清空lt
>>> lt.clear()
>>> lt
[]
(4)序列类型应用场景
元组用于元素不改变的应用场景,更多用于固定搭配场景
-列表更加灵活,它是最常用的序列类型
-最主要作用:表示一组有序数据,进而操作它们
1、元素遍历
2、数据保护(利用元组)
>>> ls = ["a","b",1,2,3]
>>> lt = tuple(ls)
>>> lt
('a', 'b', 1, 2, 3)
三、字典类型
1、定义
理解“映射"
-映射是一种键(索引)和值(数据)的对应
字典类型是“映射”的体现
-键值对:键是数据索引的扩展
-字典是键值对的集合,键值对之间无序
-采用大括号{ }和dict()创建,键值对用冒号:表示,每个键值对之间yong逗号,隔开
>>> d = {"China":"beijing","France":"Paris"}
>>> d
{'China': 'beijing', 'France': 'Paris'}
>>> d["China"]
'beijing'
>>> type(d)
<class 'dict'>
需要注意的是:建立空字典可以用{ },因为字典非常常用,所以把这一功能给它而不是集合,建立空集合必须用set()
2、字典处理函数及方法
>>> d.keys()
dict_keys(['China', 'France'])
>>> d.values()
dict_values(['beijing', 'Paris'])
>>> type(d.values())
<class 'dict_values'>
可见,keys和values方法返回的不是列表类型,他们可以用for in方式做遍历,但不可用列表的操作
>>> d.get("China","America")
'beijing'
>>> d.get("America","England")
'England'
>>> d.popitem()
('France', 'Paris')
3、小测
#定义新字典de
>>> de = {}
>#向de新增两个元素
>>> de["Name"] = "Yuanzheng"
>>> de["Age"] = 21
>>> de
{'Name': 'Yuanzheng', 'Age': 21}
#修改第二个元素
>>> de["Age"] = 22
>>> de
{'Name': 'Yuanzheng', 'Age': 22}
#判断字符“c”是否是de的键
>>> "c" in de
False
#计算de的长度
>>> len(de)
2
#清空de
>>> de.clear()
>>> de
{}
4、字典类型应用场景
1、 映射的表达
-映射无处不在,键值对无处不在
-例如:统计数据出现的次数,数据是键,次数是值
-最主要作用:表达键值对数据,进而操作它们
2、元素遍历