散列类型
集合
1、集合 :无序、唯一、可变类型。
定义: { } 或 set()。后者能将其他组合数据类型变为集合类型。
>>> a={1,2,3,4,2}
>>> a
{1, 2, 3, 4}
>>> b=[1,2,3,4,5,2]
>>> b
[1, 2, 3, 4, 5, 2]
>>> set(b)
{1, 2, 3, 4, 5} #去重
2、& 交集 。 | 并集。 - 差集 。
>>> a={"s",'a','b','f'}
>>> b={"a",'c','f'}
>>> a&b #交集
{'a', 'f'}
>>> a|b #并集
{'a', 'f', 'b', 'c', 's'}
>>> a-b #差集
{'s', 'b'}
3、 增:.add() 集合增加元素。
删:.pop() 随机删除,对于从列表和字符串变过来的集合,删除元素是从左往右开始删除的。
.remove() 指定元素删除。
改: .update() 更改元素
>>> a={"我们是最强的"}
>>> a
{'我们是最强的'}
>>> a.add('也是最胖的')
>>> a
{'我们是最强的', '也是最胖的'}
>>> a.pop()
'我们是最强的'
>>> a.remove('也是最胖的')
>>> a
set()
>>> b={1,'a'}
>>> b
{'a', 1}
>>> b.update([2,3,4,5,'a','b'])
>>> b
{1, 2, 3, 4, 5, 'a', 'b'}
4、 查询:
.isdisjoint() 判断两个序列是否有交集,有交集则返回False,无交集则返回true。
.issibset() 判断是否包含于
.issuperset() 判断是否包含
>>> a={'a','b','c'}
>>> b={'v','f','a'}
>>> a.isdisjoint(b)
False
字典
1、两种定义方法:
di={‘name’:‘rxw’,‘height’:‘180cm’} 键值对形式
di2=dict(a=1,b=2) 使用dict函数
修改和添加: dict[‘a’]=2 有这个键就修改,没有就添加
>>> a={
'姓名':"rxw",
'身高':"180",
'体重':'140',
'颜值':"重庆小胡歌"}
>>> a
{'姓名': 'rxw', '身高': '180', '体重': '140', '颜值': '重庆小胡歌'}
>>> type(a)
<class 'dict'>
>>> b=dict(姓名="rxw")
>>> b
{'姓名': 'rxw'}
>>> a['颜值']='宇宙第一帅'
>>> a
{'姓名': 'rxw', '身高': '180', '体重': '140', '颜值': '宇宙第一帅'}
>>> a['情感']='单身'
>>> a
{'姓名': 'rxw', '身高': '180', '体重': '140', '颜值': '宇宙第一帅', '情感': '单身'}
2、增加:
copy
dict.fromkeys(key,value) 返回新字典,是第一个参数的拆分,新字典的值是第二个参数。key为可迭代对象,将其值全部设为value. 例:dict.fromkeys([‘a’,‘b’],150) [‘a’,‘b’]为可迭代对象,序列类型。
.setdefault(key,value) 有则查询,没有则添加。
删除:
clear 清空字典
pop 弹出指定key的键值对,原来的被删除
popitem 返回并删除字典中的最后一对键和值
改:
.update ({key:value}) 更新字典、将原字典和新字典整合,key重复新的覆盖老的(注意格式)
查:
.get() 获取指定key对应的value,如果key不存在则返回none
.keys() 取出所有key
.values() 取出所有的值
.items() 取出所有的键值对
>>> a={
"姓名":'rts',
"身高":'180',
"体重":'140',
"颜值":'重庆小胡歌'}
>>> a
{'姓名': 'rts', '身高': '180', '体重': '140', '颜值': '重庆小胡歌'}
>>> b=dict(姓名='rxw',身高='183',体重='135')
>>> b
{'姓名': 'rxw', '身高': '183', '体重': '135'}
>>> import copy
>>> c= copy.copy(a)
>>> c
{'姓名': 'rts', '身高': '180', '体重': '140', '颜值': '重庆小胡歌'}
>>> c.fromkeys(['a','b'],150)
{'a': 150, 'b': 150}
>>> dict.fromkeys(['a','b','c'],200)
{'a': 200, 'b': 200, 'c': 200}
>>> c.setdefault('姓名','烟雨平生')
'rts'
>>> c.clear()
>>> c
{}
>>> del c
>>> c
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
c
NameError: name 'c' is not defined
>>> a.pop('体重')
'140'
>>> a.popitem()
('颜值', '重庆小胡歌')
>>> a.update({'颜值':'重庆彭于晏'})
>>> a
{'姓名': 'rts', '身高': '180', '颜值': '重庆彭于晏'}
>>> a.keys()
dict_keys(['姓名', '身高', '颜值'])
>>> a.values()
dict_values(['rts', '180', '重庆彭于晏'])
>>> a.items()
dict_items([('姓名', 'rts'), ('身高', '180'), ('颜值', '重庆彭于晏')])
>>> a.get('颜值')
'重庆彭于晏'
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k4cJVDKC-1578213033800)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20191231174652918.png)]
逻辑运算符
1、查看对象类型:
type(object) 查看对象的类型
isinstance(0bject,类型) 比对是否为所写类型
>>> a=1
>>> a
1
>>> type(a)
<class 'int'>
>>> isinstance(a,list)
False
>>> isinstance(a,int)
True
2、比较运算符
== 等于 != 不等于 >= <= > <
如果有多个条件:
判断语句1 and 判断语句2
判断语句 1 or 判断语句2
not 判断语句
3、运算符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aNTQPDBN-1578213033801)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20191224220834567.png)]
断语句1 and 判断语句2
判断语句 1 or 判断语句2
not 判断语句
3、运算符
[外链图片转存中…(img-aNTQPDBN-1578213033801)]
[外链图片转存中…(img-T212kPQW-1578213033802)]
[外链图片转存中…(img-zg893ha6-1578213033803)]