python--4、散列类型(集合、字典)和逻辑运算

散列类型

集合

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)]

img

img

断语句1 and 判断语句2

​ 判断语句 1 or 判断语句2

​ not 判断语句

3、运算符

[外链图片转存中…(img-aNTQPDBN-1578213033801)]

[外链图片转存中…(img-T212kPQW-1578213033802)]

[外链图片转存中…(img-zg893ha6-1578213033803)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值