目录
一、组合数据类型的基本概念
二、集合类型
1.集合类型概述
Python语言中的集合类型与数学中的集合概念一致,即包含0个或多个数据项的无序组合。用大括号{}表示,它没有索引和位置的概念,集合中元素可以动态增加或删除;由于集合元素独一无二,使用集合类型能够过滤掉重复元素。
2.集合类型的操作符
集合类型有4个操作符,交集&、并集|、差集-、补集^,操作逻辑与数学定义相同。
操作符的运算 | 描述 |
---|---|
S – T | 返回一个新集合包括在集合S中但不在集合T中的元素 |
S & T | 返回一个新集合包括同时在集合S和T中的元素 |
S^T | 返回一个新集合包括集合S和T中非共同元素 |
S\T(竖着的) | 返回一个新集合包括集合S和T中所有元素 |
3.集合类型的操作函数或方法
函数或方法 | 描述 |
---|---|
S.add(x) | 如果数据项x不在集合S中,将x增加到s |
S.remove(x) | 如果x在集合S中,移除该元素;不在产生KeyError异常 |
S.clear() | 移除S中所有数据项 |
len(S) | 返回集合S元素个数 |
x in S | 如果x是S的元素,返回True,否则返回False |
x not in S | 如果x不是S的元素,返回True,否则返回False |
s = {1,3.3 4,0,66,4}
print(4 in s)
#输出:True
set()函数将其他的组合数据类型变成集合类型,返回结果是一个无重复且排序任意的集合。set()函数也可以生成空集合变量。
三、序列类型
是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。序列类型的典型代表是字符串(str)、列表(list)、元组(tuple)
1.字符串
已发的深入了解数字和字符串文章中已将讲解。
2.列表
列表类型用中括号[] 表示,列表没有长度限制,元素类型可以不同。通过list(x)函数将集合或字符串类型转换成列表类型。
2.1列表的索引
索引是列表的基本操作,用于获得列表的一个元素。使用中括号作为索引操作符。
正向索引:从0开始,从左到右计数,依次增加。示例代码如下:
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) #输出:1
print(my_list[2]) #输出:3
反向索引:从-1开始,从右到左计数,依次减小。示例代码如下:
my_list = [1, 2, 3, 4, 5]
print(my_list[-1]) #输出:5
print(my_list[-3]) #输出:3
2.2列表的切片
切片是列表的基本操作,用于获得列表的一个片段,即获得一个或多个元素。切片后的结果也是列表类型。
切片的使用方式:列表或列表变量[N: M: K]。
注释:切片获取列表类型从N到M(不包含M)的元素组成新的列表。当K存在时,切片获取列表类型从N到M(不包含M)以K为步长所对应元素组成的列表。
my_list = [1,2,3,4,5,6,7,8,9,10,11,12]
print(my_list[0:6]) #输出:[1, 2, 3, 4, 5, 6]
print(my_list[0:6:2]) #输出:[1, 3, 5]
2.3列表的操作
方法 | 描述 |
---|---|
ls.append(x) | 在列表ls最后增加一个元素x |
ls.insert(i, x) | 在列表ls第i位置增加元素x |
ls.clear() | 删除ls中所有元素 |
ls.pop(i) | 将列表ls中第i项元素取出并删除该元素 |
ls.remove(x) | 将列表中出现的第一个元素x删除 |
ls.reverse() | 列表ls中元素反转 |
ls.copy() | 生成一个新列表,复制ls中所有元素 |
my_list = [1,2,3,4,5,6,7,8,9,10,11,12]
my_list.clear()
print(my_list) #输出:[ ]
ls.append(x)仅用于在列表中增加一个元素,如果希望增加多个元素,可以使用加号+,将两个列表合并。
my_list1 = [1,2,3,4,5,6,7]
my_list2 = [8,9,10,11,12]
print(my_list1+my_list2)
#输出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
3.元组
Python的元组与列表类似,不同之处在于元组的元素不能修改;元组使用小括号(),列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
四、映射
映射是“键-值”数据项的组合,每个元素是一个键值对,表示为(key, value)。映射类型的典型代表是字典(dict)。
使用方式:{键1:值1, 键2:值2, … , 键n:值n}
键和值通过冒号连接,不同键值对通过逗号隔开。大括号可以表示集合,字典类型也具有和集合类似的性质,即键值对之间没有顺序且不能重复。
1.字典的索引
列表类型采用元素顺序的位置进行索引。由于字典元素“键值对”中键是值的索引,因此,可以直接利用键值对关系索引元素。
使用方式:字典变量[键]
dic={"1001":"5人","1002":"3人","1003":"15人"}
print(dic["1001"])
#输出:5人
2.字典的操作函数
操作函数 | 描述 |
---|---|
len(d) | 字典d的元素个数 |
min(d) | 字典d中键的最小值 |
max(d) | 字典d中键的最小值 |
dict() | 生成一个空字典 |
d={"1001":"5人","1002":"3人","1003":"15人"}
print(len(d)) #输出:3
print(min(d)) #输出:1001
3.字典的操作方法
操作函数 | 描述 |
---|---|
d.keys() | 返回所有的键信息 |
d.values() | 返回所有的值信息 |
d.items() | 返回所有的键值对 |
d.get(key, default) | 键存在则返回相应值,否则返回默认值 |
d.pop(key, default) | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
d.popitem() | 随机从字典中取出一个键值对,以元组(key, value)形式返回 |
d.clear() | 删除所有的键值对 |
d.keys()返回字典中的所有键信息,返回结果是Python的一种内部数据类型dict_keys,专用于表示字典的键。如果希望更好的使用返回结果,可以将其转换为列表类型。
d={"1001":"5人","1002":"3人","1003":"15人"}
print(d.keys()) #输出:dict_keys(['1001', '1002', '1003'])
print(list(d.keys())) #输出:['1001', '1002', '1003']
d.values()返回字典中的所有值信息,返回结果是Python的一种内部数据类型dict_values。如果希望更好的使用返回结果,可以将其转换为列表类型。
d={"1001":"5人","1002":"3人","1003":"15人"}
print(d.values()) #输出:dict_values(['5人', '3人', '15人'])
print(list(d.values())) #输出:['5人', '3人', '15人']
d.items()返回字典中的所有键和值的信息对,返回结果是Python的一种内部数据类型dict_items。
d={"1001":"5人","1002":"3人","1003":"15人"}
print(d.items()) #输出:dict_items([('1001', '5人'), ('1002', '3人'), ('1003', '15人')])
print(list(d.items())) #输出:[('1001', '5人'), ('1002', '3人'), ('1003', '15人')]
d.get(key, default)根据键信息查找并返回值信息,如果key存在则返回相应的值,否则返回默认值(default),第二个元素default可以省略,如果省略则默认值为空。
d={"1001":"5人","1002":"3人","1003":"15人"}
a = d.get('1004','没有该元素')
print(a) #输出:没有该元素
d.pop(key, default)根据键信息查找并取出值信息,如果key存在则返回相应值,否则返回默认值,第二个元素default可以省略,如果省略则默认值为空。相比d.get()方法,d.pop()在取出相应值后,将从字典中删除对应的键值对。
d={"1001":"5人","1002":"3人","1003":"15人"}
a = d.pop('1003','没有该元素')
print(a) #输出:15人
print(d) #输出:{'1001': '5人', '1002': '3人'}
d.popitem()随机从字典中取出一个键值对,以元组(key,value)形式返回。取出后从字典中删除这个键值对。
d={"1001":"5人","1002":"3人","1003":"15人"}
a = d.popitem()
print(a) #输出:('1003', '15人')
print(d) #输出:{'1001': '5人', '1002': '3人'}
d.clear()删除字典中所有键值对。
d={"1001":"5人","1002":"3人","1003":"15人"}
d.clear()
print(d) # 输出:{}
此外,如果希望删除字典中某一个元素, 可以使用Python保留字del。
d={"1001":"5人","1002":"3人","1003":"15人"}
del d["1001"]
print(d) # 输出:{'1002': '3人', '1003': '15人'}
字典类型也支持保留字in,用来判断一个键是否在字典中。如果在则返回True,否则返回False。
d={"1001":"5人","1002":"3人","1003":"15人"}
print("1001" in d) # 输出:True
print("1005" in d) # 输出:False
字典可以遍历循环对其元素进行遍历
语句块: for 变量名 in 字典名
d={"1001":"5人","1002":"3人","1003":"15人"}
for k in d:
print('字典的键和值分别是{}和{}'.format(k,d.get(k)))
#输出:
字典的键和值分别是1001和5人
字典的键和值分别是1002和3人
字典的键和值分别是1003和15人
注意:for循环返回的变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过get()方法获得。
总结
如果你感到委屈,证明你还有底线;
如果你感到迷茫,证明你还有追求;
如果你感到痛苦,证明你还有力气;
如果你感到绝望,证明你还有希望。