之前写了一篇文章是Python基本数据类型,主要记录了python的整数类型、浮点数类型、负数类型和常用的数值运算函数。除了基本类型,python还有组合数据类型:集合类型、序列类型、字典类型
集合类型
集合(set)是集合是多个元素的无序组合。
集合类型与数学中的集合概念是一致的
集合元素之间无序,每个元素唯一,不存在相同元素
集合元素不可更改,不能是可变数据类型
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
1
2
3
4
5
|
A = {"python", 123, ("python",123)} #使用{}建立集合
>>>{123, 'python', ('python', 123)}
B = set("pypy123") #使用set()建立集合
>>>{'1', 'p', '2', '3', 'y'}
|
集合间操作
集合处理方法
1
2
3
4
5
6
|
A = {"p", "y" , 123
for item in A
print(item, end="" ):
>>>p123y
A
>>>{'p', 123, 'y'}
|
集合类型应用场景
1、包含关系比较
1
2
3
4
5
|
包含关系比较
"p" in {"p", " y" , 123}
>>>True
{"p", "y"} >={"p", "y" , 123}
>>>False
|
2、数据去重:集合类型所有元素无重复
1
2
3
4
5
6
|
ls = ["p", "p", "y", "y", 123]
s = set(ls) # 利用了集合无重复元素的特点
>>>{'p', 'y', 123}
lt = list(s) # 还可以将集合转换为列表
>>>['p', 'y', 123]
|
序列类型
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字,它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。序列类型支持反向递减序号和正向递增序号
Python有6个序列的内置类型,但最常见的是字符串、列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
序列类型通用操作符
1
2
3
4
5
6
7
|
ls = [ "python", 123, ".io "]
ls[::-1]
>>>['. io', 123, 'python']
s = "python123.io"
s[::-1]
>>>'oi.321nohtyp'
|
序列类型通用函数和方法
1
2
3
4
5
6
7
|
ls = ["python", 123,".io "
len(ls)
>>>3
s = "python123.io"
max(s)
>>>'y'
|
元组
Python 的元组是序列类型的一种扩展,与列表类似,不同之处在于元组的元素不能修改。
使用小括号() 或tuple() 创建,元素间用逗号, 分隔。
可以使用或不使用小括号,函数return时就是返回一个元组类型
元组创建
1
2
3
4
5
6
7
|
creature = "cat ", " dog ", "tiger", "human"
creature
>>>('cat', 'dog', 'tiger', 'human')
color = (0x001100, "blue", creature)
color
>>>(4352, 'blue', ('cat', 'dog', 'tiger', 'human'))
|
元组类型操作
元组继承序列类型的全部通用操作,元组因为创建后不能修改,因此没有特殊操作,使用或不使用小括号都行。
列表
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型,无长度限制
列表是一种序列类型,创建后可以随意被修改
使用方括号[] 或list() 创建,元素间用逗号, 分隔
列表的创建
1
2
3
4
5
6
|
ls = ["cat ", " dog ", "tiger", 1024]
ls
>>>['cat', 'dog', 'tiger', 1024]
lt = ls
lt
>>>['cat', 'dog', 'tiger', 1024]
|
注意:lt = ls 这条赋值语句,it并不是真正创建了一个列表,赋值仅传递引用。类似c语言的指针,lt和ls都是指向[‘cat’, ‘dog’, ‘tiger’, 1024] ,都是它的名字。
列表类型操作函数和方法
1
2
3
4
5
6
7
8
9
|
ls = ["cat ", " dog ", "tiger", 1024]
ls[1:2]= [1, 2, 3, 4]
>>>['cat', 1, 2, 3, 4, 'tiger', 1024]
del ls[::3]
>>>[1, 2, 4, 'tiger']
ls *2
[1, 2, 4, 'tiger', 1, 2, 4, 'tiger']
|
1
2
3
4
5
6
7
8
9
10
11
12
|
#在最后添加元素
ls = ["cat ", " dog ", "tiger", 1024]
ls .append(1234)
>>>['cat', 'dog', 'tiger', 1024, 1234]
#指定位置增加元素
ls.insert(3, "human")
['cat', 'dog', 'tiger', 'human', 1024, 1234]
#元素反转
ls.reverse()
[1234, 1024, 'human', 'tiger', 'dog', 'cat']
|
序列类型应用场景
数据表示:元组和列表
1、元组用于元素不改变的应用场景,更多用于固定搭配场景
2、列表更加灵活,它是最常用的序列类型
3、最主要作用:表示一组有序数据,进而操作它们
4、如果不希望数据被程序所改变,转换成元组类型
1
2
3
4
|
ls = ["cat ", " dog ", "tiger", 1024]
lt = tuple(ls) #转换为元组类型
lt
>>>('cat', 'dog', 'tiger', 1024)
|
字典类型
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
1
|
d = {key1 : value1, key2 : value2 }
|
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的字典实例:
1
2
3
4
|
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
|
访问字典里的值
1
2
3
4
5
6
7
|
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
>>>
dict['Name']: Runoob
dict['Age']: 7
|
字典类型操作函数和方法
字典类型应用场景
1、映射无处不在,键值对无处不在
2、例如:统计数据出现的次数,数据是键,次数是值
3、最主要作用:表达键值对数据,进而操作它们
4、d[key] 方式既可以索引,也可以赋值
参考资料:Python语言程序设计基础(第2版)》嵩天、礼欣、黄天羽著,高等教育出版社,2017.2(讲授Python 3版本)
视频课程
Python3菜鸟教程
Python官方手册