Python——第五章 组合数据类型

    技术2022-07-14  79

    5 组合数据类型的基本概念

    5.1 集合类型

    5.1.1 集合类型概述

    Python语言中的集合类型与数学中集合概念一致,即包含0个或多个数据项的无序组合。用大括号{}表示,它没有索引和位置的概念,集合中的元素可以动态增加或删除。 由于集合元素独一无二,使集合类型可以过滤掉重复元素

    s={90,1010,'def','76.8',90} print(type(s)) print(s)

    输出无序,并且可以自动过滤掉重复元素。

    5.1.1 集合类型的操作符

    s={1010,'def','76.8',90} t={1010,'python',12.3,1010} print(s) print(t) print(s-t) #s和t的差集 print(s&t) #s和t的交集 print(s^t) #s和t的补集 print(s|t) #s和t的并集

    5.1.2 集合类型的操作函数和方法

    s={1010,"python",78.9} s.add('人工智能') #如果add()函数中的参数在集合中未出现,则把add()中的参数加入到集合s中 print(s) s.remove('人工智能') #把remove()函数中的参数,在集合s中删除 print(s) s.clear() #将集合中所有元素清空 输出set() print(s) print(len(s)) #统计集合中的元素个数 print(1010 in s) #检测1010是否在集合s中,在返回True,不在的话返回False print(1010 not in s) #检测1010是否不在集合s中,不在返回True,在的话返回False

    运行结果如下

    set( )函数可以将其他的组合数据类型变成集合类型,返回结果是一个无重复且排序任意的集合。set()函数也可以生成空集合变量

    a=set() print(a) #输出set()表示空集合 s=set("知之为之不知为不知") print(s)

    5.2 列表类型

    5.2.1 列表类型概述

    ls=['甜甜圈','珍珠奶茶','方便面','卡路里',101] #列表不会改变字符串的顺序,也不会删除重复数据 print(ls,type(ls)) print(list('列表可以由字符串生成'))

    5.2.2 列表的索引

    索引是列表的基本操作,用于获得列表的一个元素。使用中括号作为索引操作符。

    ls=[1101,'1102',[1103,'1104'],1115] #对应元素位置是 0 1 2 3 或者 -3 -2 -1 0 print(ls[-2]) print(ls[3])

    可以使用遍历循环对列表元素进行遍历操作。 运行结果如下:

    5.2.3 列表的切片

    切片是列表的基本操作,用于获得列表的一个判断,即获得一个或多个元素。切片后的结果也是列表的类型。 切片的使用方法: 切片获取列表类型从N到M(不包括M)的元素组成新的列表。当k存在时,切片获取列表类型从N到M(不包括M)以K为步长所对应元素组成的列表。

    ls=[1101,'1102',[1103,'1104'],1115] #对应元素位置是 0 1 2 3 或者 0 -1 -2 -3 print(ls[1:4]) print(ls[-3:-1]) print(ls[0:4:2])

    运行结果如下:

    5.2.4列表的操作方法

    ls=['风清扬','令狐冲','东方不败','杨过','东方不败'] ls.append('欧阳锋') #在列表最后添加元素'欧阳锋' print(ls) lt=['萧峰','独孤求败'] #对列表进行拼接 ls +=lt print(ls) ls.insert(1,'郭靖') print(ls) print(ls.pop(1)) #删除列表中1号元素 print(ls) ls.remove('东方不败') #只删除第一个东方不败 print(ls) del ls[1:3] #删除1号元素到2号元素 del[1:]删除1号元素之后的所有元素 print(ls) print(ls.reverse) #列表反转 lt=ls.copy() print(ls) print(lt) ls[1]='修改' #使用索引配合等号(=)可以对列表元素进行修改 print(ls) ls.clear() #清空列表 print(ls)

    5.3元祖

    Python的元祖与列表类似,不同之处在于元祖的元素不能修改。 元祖使用小括号{},列表使用方括号。 元祖创建简单,只需要在括号中添加元素,并使用逗号隔开即可。

    元祖的函数 count与index 元祖只涉及两个函数,count用来统计元祖中元素个数。index用来对元祖进行索引

    ls=('风清扬', '令狐冲', '东方不败', '杨过', '东方不败', '欧阳锋') print(ls,type(ls)) #对应类型为元祖 num=ls.count('东方不败') print(num) id=ls.index('东方不败') #返回对应的第一个元素位置 print(id) print(ls[1]) #索引的时候都用中括号[] lt=['苹果','橘子','梨'] print(tuple(lt)) #tuple可以将列表转化为元祖 lp='十大武林高手' print(tuple(lp)) #tuple可以将字符串转化为元祖

    tuple可以将字符串和列表转化成元祖

    5.4字典操作

    5.4.1 字典的索引&修改&建立

    Python语言中的字典使用大括号{}建立,每个元素是一个键值对。 使用方式: 键和值通过冒号连接,不同建制对通过逗号隔开。大括号可以表示集合,字典类型也具有集合类似的性质,即键值对之间没有顺序且不能重复。

    d={'两弹元勋':'邓稼贤','青蒿素':'屠呦呦','水稻之父':'袁隆平'} print(d,type(d))

    字典的索引&修改

    print(d['两弹元勋']) #对字典进行索引 d['两弹元勋']="邓稼先" print(d)

    运行结果: 字典的创建

    #定义字典 t={ } #定义集合必须使用set() t[201804]="小新" t[201805]="小强" print(t)

    5.4.2 字典的操作函数

    字典类型具有一些典型的操作函数: 创建一个空字典:

    a=dict() #创建一个空字典 print(a)

    运行结果如下: 字典的长度,最大键值和最小键值:

    d={"201804":"张三","201805":"李四","201806":"王五"} a=len(d) print(a) a=max(d) print(a) a=min(d) print(a)

    运行结果如下:

    d.keys() 获取字典中键的信息

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} a=d.keys() #获取字典中键的信息 print(a) b=list(d.keys()) #把字典中的关键字转化成列表 print(b)

    d.values() 获取字典中值的信息

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} a=d.values() print(a) b=list(d.values()) #把字典的值转换成列表 print(b)

    运行结果如下:

    d.items()

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} a=d.items() print(a) b=list(d.items()) #把字典的键值对儿转换成元组 print(b)

    运行结果如下:

    d.get(key,defalut) 如果字典中存在key关键字,返回关键字的值,否则返回defalut(用户可自定义具体值)

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} a=d.get('201804',"没有该元素") print(a) a=d.get('201802',"没有该元素") print(a)

    运行结果如下:

    字典的删除

    d.pop(key,defalut) 查找key关键字,如果存在返回对应值,并在字典中删除。若字典中不存在key关键字,返回defalut

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} a=d.pop('201804',"没有该元素") print(a) print(d)

    运行结果如下:

    d.popitem() 随机删除字典中键值对儿

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} a=d.popitem() print(a) print(d)

    del d[key] 删除字典中对应key的键值

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} del d['201803'] #删除某一键值对 print(d)

    运行结果如下:

    d.clear() 清空字典

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} d.clear() print(d)

    运行结果如下: 检查某一键值是否存在于字典中:

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} print("201804" in d) #只可以用来检查键是否存在

    运行结果如下: 字典的循环遍历:

    d={"201803":"刘七","201804":"张三","201805":"李四","201806":"王五"} for k in d: print("字典的键和值分别是:{}和{}".format(k,d.get(k)))#get用于获得k对应的值。

    Processed: 0.017, SQL: 9