第三章 组合数据

一、组合数据类型的基本概念

Alt

二、集合类型

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)))
 #输出:
字典的键和值分别是10015人
字典的键和值分别是10023人
字典的键和值分别是100315

  注意:for循环返回的变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过get()方法获得。

总结

如果你感到委屈,证明你还有底线;
如果你感到迷茫,证明你还有追求;
如果你感到痛苦,证明你还有力气;
如果你感到绝望,证明你还有希望。

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值