1.元祖
元祖:是可以同时存储多个数据的容器,有序的,不可变的。
语法:使用()将多个元素括起来,用逗号分隔开,元素可以是任何类型的数据。或者直接用逗号隔开,表示的也是一个元祖。
注意:元祖只有一个元素时,要在元素后加逗号。tuple1=(1,)
元祖与列表区别 :元祖元素不支持增删改,只能查。列表获取元素的方式,元祖都支持。
可以通过相同的变量个数来一一获取元祖中的元素
x,y=10,20
交换变量的值:
a,b=10,20
b,a=a,b # a=20,b=10
可以通过在变量前加*来获取部分元素
tuple1=("小鲜肉",20,30,40,30)
name,*score,num=tuple1
print(name,score,num) #小鲜肉 [20,30,40] 30
可以通过在列表和元祖前加*,来展开元素
tuple1=(1,2,[2,4])
print(*tuple1) #1 2 [2,4]
元祖的运算:+,*,==,is,in,not in
print((1,2)+(3,4))
print((1,2)*3)
print((1,2)==(1,2))
print((1,2) is (1,2)) # False
print((1,2,3) in (1,2,3,4,5))
print((1,2) not in(2,4,5))
函数:len(),max(),min()
转换:tuple().注意,字典只能将key值作为元祖元素。
排序:sorted(),可以通过sorted()对元祖进行排序,得到一个新的列表。
2.字典
字典dict:是一个容器类的数据类型,可以用来存储多个数据(以键值对的形式存储)
语法:{key1:value1,key2:value2…………}
可变,无序:可以增删改查,但不能通过下标获取值
键(key):用来定位值,要求只能是不可变的数据类型(数值,字符串,元祖……),并且是唯一的。
值(value):用来存储数据,可以是任何类型的数据
不同容器类型的使用:
列表:保存的个数据是同一类的数据(不用区分)
字典:保存的多个数据是不同类型的数据(需要区分)
查(获取value):a.通过key 来获取,字典[key]--->获取key对应的值。key必须是存在的,否则会报KeyError b.字典.get(key)--->通过key获取值。key不存在时不报错,为None
确定key存在用[]语法,不确定用get().
遍历:for a in dict1: ,得到的a是key值。在用dict1[a]得到value(推荐使用,更节省资源)
其他遍历方法:for a in dict1.values():得到value,for key ,value in dict1.items():得到键值对。
添加键值对:
字典[key]=值(key不存在)
dict1={}
dict1["dsj"]=1
修改:
字典[key]=值(key存在)
删除:删除键值对
a. del 字典[key]
b. pop(key) --->取出key对应的键值对。
字典相关运算:
==:判断两个字典的值是否相等
is:判断两个字典的id是否相等。
in,not in:判断key是否存在于字典
字典相关函数和方法:
- len():获取键值对的个数。
- clear():清空字典
- 字典.copy():返回一个字典的复制
- dict.formkeys(序列,值):创建一个字典,序列中的元素分别为一个key,且value=值。
dict1=dict.formkeys("abc",12)
print(dict1) #{"a":12,"b":12,"c":12}
- 字典.get(key)--->key不存在时取none
字典.get(key,默认值)--->key不存在时取默认值 - 字典.value();字典.keys():返回所有的值/key
字典.items():将键值对转换成元祖,作为一个序列的元素。
注意:返回的都不是列表,是别的序列。 - 字典.setdefault(key)--->添加键值对,值为none
字典.setdefault(key,值)---->添加键值对,value=值
注意:key存在时不会修改字典的值,什么也不做。 - 字典1.update(字典2)--->使用字典2去更新字典1.(已经存在的key就更新,不存在就添加)
3.集合
集合 :容器,可以同时存储多个数据,可变的,无序的,唯一。
唯一 :自带去重功能。
语法:{元素1,元素2…………} 元素只能是不可变的数据,并且不能重复
集合的增删改查:
a.查(获取元素):集合不能获得单独的元素,也不能切片,只能通过遍历
b.增加:集合.add(元素)--->在集合中添加一个元素。
集合1.update(序列)--->将序列中的元素(元素不可变)添加到集合1
c.删除:集合.remove(元素)--->删除指定的元素
d.改:集合不能改。
集合相关的运算
1.包含:集合1>=集合2,或者 集合2<=集合1判断集合1中是否包含集合2
2.交集:& 求2个集合公共的部分。
3.并集:| 求2个集合的并集。
4.差集:集合1-集合2 求集合1中除了集合2以外的部分
5.补集:^ 两个集合除了公共部分以外的部分。
4.数据类型转换
- int():浮点数、布尔、部分字符串(34,+34,-34)(34.4不可以,即去掉引号后是一个整数的才可以转换)可以转换成整型
- float():整数,bool,部分字符串(去掉引号后是数字)
- bool():所有的数据都可以转换成布尔.(当数据为0或者为空[] {},none时为False)
- str():所有的数据都可以转成字符串,在数据外加引号就ok。
- list():序列才能转化成列表,将序列中的元素作为列表中的元素。字典转换成列表,将key作为元素。
- tuple():只能将序列转换成元祖
- dict():只有序列,并且每个元素都要有2个值
- set():序列可以转换成集合,有去重的功能。
网友评论