day 07 元组,字典和集合等数据类型介绍

元组:就是一个不可变的列表

1.用途,当我们需要记录多个值,并且没有更改的需求的时候,应该使用元组

2定义方式:使用,在 ( ) 中分隔开多个任意类型的值

注:t=("egg",),如当列表中只有一个值的时候,在末尾加上 , 逗号

t=tuple("hello")  # 元组和列表的类型的类型转换相同,可将任意可迭代类型转换成 元组类型

常用操作+内置方法

1.按照索引取值,因为元组是不可变类型,所以只能取值

.count()  统计某个元素出现的次数

.index()  计算出某个元素出现的位置的索引值

总结:元组是不可变类型

字典:记录多个不同属性的值

定义方式:在{} 内使用逗号分隔开多个元素,每个元素都是key:value的形式,其中value可以是任意类型,但是key只能是不可变类型

数据类型转换

l1=(["name","haha"],["age","18"],("gender","male"))

dic=dict(l1)    # 可以直接将l1 转换成一个字典

dic1=dict(x=1,y=2,z=3)  # 也可以直接将括号内的内容转换成字典

常用操作+方法

1按key取值:可存可取

dic={'name': '哈哈', 'age': 18, 'gender': 'male'}

dic["name"]            #取出元素对应的值,如果指定的key,在字典中不存在则报错

dic["name"]="xixi"   #如果key对应的值存在,则修改字典中的已存在键值对,如果不存在,则新增,新的键值对

2len

计算出字典中存在的键值对的数量

3in和not in 判断得是字典的key

4删除

del dic["name"]   #

t=dic.popitem()   #随机弹出一个键值对,返回值是一个键值对的元组

t=dic.pop("name")  # 通过给定的key,弹出一个元素,返回值是key对应的value

5键keys(), 值values(),键值对items()

dic.keys()     #取出字典的所有的key的值,在python2中直接返回一个列表,在python3 不是直接返回列表,可以通过for循环取出

dic.values()  #取出字典的所有的value值

dic.items()  #取出字典中所有的键值对,一个键值对保存在一个元组中

5. get取值

get() 取值,如果key在字典中,则返回key对应的value.如果key不存在,不会报错,返回一个None

需要掌握的操作

dic.formkey(iter,char)

通过第一个参数给定的可迭代对象,作为key,第二个参数作为默认值,快速的构造一个字典

方法需要通过使用字典调用{} 不会改变调用字典,返回一个构造完成的字典,所以调用字典的状态并不会影响调用方法的结果

dic.updata

使用updata()中给定的字典更新调用的字典,如果key已经存在则使用参数中的key对应的value值,更新源字典,如果key不存在,则添加

dic.setdefault(key,value)  # 执行完毕后的结果时保证字典中有 这个值存在

参数是key和value 如果调用字典中不存在key,则将参数中的key,value添加到字典中,返回值,是参数中的vlaue值

        如果调用字典中key,已经存在,则不做任何操作,直接将key对应的value返回

集合set

用途:

  做关系运算

  去重

定义方式:在{} 中使用,逗号分隔开多个值,多个元素必须满足以下要求

  每一个元素必须是不可变类型

  集合内的元素不能重复

  集合无序

注意: d={} 默认d是字典类型, d=set{}  则d是集合类型

常用操作+内置的方法

关系运算

pythons={'李铁蛋','张全蛋','王铜蛋','赵银蛋','oldboy','艾利克斯'}
linuxs={'kevin','egon','tank','艾利克斯','王铜蛋'}

求即报名python课时又报名linux课程的学员:交集

python & linuxs  返回值是一个字典类型

pythons.intersection(linuxs)

求所有的学员姓名:并集

pythons | linuxs

python.union(linuxs)

求只报名python课程的学员:差集

pythons-linuxs

python.difference(linuxs)

求没有同时报名两门课程的学员:对称差集

python^linuxs

pythons.symmetric_differcnce(linuxs)

父集/子集 :包含和被包含的关系

只有一个集合中的元素包含另一个集合中的全部元素的时候,才会有子集和父集的概率

set1={1,2,3}

set2={1,2}

set1>=set2   # True

set1.issuperset(set2)  # True

掌握的操作

set1.update({2,3,4})    #使用参数中的集合更新源集合

set1.add(1)    #新增一个值

set1.pop() 随机弹出一个值

set1.remove(2)  弹出2这个值

set1.difference_update(set2) 将set1和set2做差集操作后的结果,给赋值给set1

set.discard()  # 如果给定的参数是集合中的一个成员则把他删除,如果不是则什么也不做,无返回值

在条件判断中所有的数据都会转换成布尔值

只需记住布尔值为假的数据类型即可,0,None,空

猜你喜欢

转载自www.cnblogs.com/MrPotato-Head/p/10220340.html
今日推荐