Python之路-基础数据类型之字典 集合

字典的定义-dict

字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'}

字典的操作

dic[键] = '值'  若键存在,则是修改,不存在则是增加

dic = {1:'',2:'',3:''}
dic[4] = '哈哈'   # 4这个key值不存在,所以新增
print(dic)
输出结果:{1: '', 2: '', 3: '', 4: '哈哈'}
dic[4] = '你笑啥' # 4这个key值存在,所以修改
print(dic)
输出结果:{1: '', 2: '', 3: '', 4: '你笑啥'}
dic.setdefault(key,value),若只有key,代表查询,若对应有值,返回值,无值时候返回None

dic = {1:'',2:'',3:''}
dic.setdefault(4)
print(dic)
返回结果:{1: '', 2: '', 3: '', 4: None}
dic = {1:'',2:'',3:''}
dic.setdefault(4,'hahh')
print(dic)
返回结果:{1: '', 2: '', 3: '', 4: 'hahh'}
dic.fromkeys('可迭代对象',值)如果值是列表,是可变的那么如果更改列表中的值会影响整个字典键中的值.

dic = {}
lst = ['hello','world']
dic = dic.fromkeys(lst,[1,2,3,4])
print(dic)
dic['hello'].append(5)
print(dic)
输出结果:  #列表是可变的,所以在输出的结果中都发生了变化
{'hello': [1, 2, 3, 4], 'world': [1, 2, 3, 4]}
{'hello': [1, 2, 3, 4, 5], 'world': [1, 2, 3, 4, 5]}
dic
= {} lst = ['hello','world'] dic = dic.fromkeys(lst,'he') print(dic) dic['hello'] = dic['hello'] + 'l' print(dic) 输出结果: {'hello': 'he', 'world': 'he'} {'hello': 'hel', 'world': 'he'}

del dic 删除整个列表
del dic[key] 根据key值删除
dic.pop(key,"不存在是可显示提示语")

dic = {1:'',2:'',3:''}
print(dic.pop(2))# 可返回删除的值
print(dic.pop(5,"找不到呀"))#找不到时会报错,可在括弧第二个区域输入提示语句
popitem():没有参数,返回值是被删除的键值对,Python3.6以上版本删除最后一项键值对,其它版本是随机删除一组键值对.
dic.clear() 清除,跟列表用法一样

dic[key] = 新值 key存在的情况下就是改
dic.update()

dic = {1:'',2:'',3:''}
dic1 = {1:'不好',5:'哈哈'}
dic.update(dic1)#根据括弧里面的修改,若有就改,没有就新增
print(dic)
运行结果:{1: '不好', 2: '', 3: '', 5: '哈哈'}

 

print(dic[key]) 通过键来查
dic.setdefault 当key值存在时就是查
dic.get(key,'返回不存在的提示语')

dic = {1:'',2:'',3:''}
print(dic.get(3))
print(dic.get(5,'没有啊'))# 若不存在则返回None,可添加提示语
运行结果:
啊
没有啊

字典的其他操作

dic.keys()
dic.items()
dic.items()

dic = {1:'',2:'',3:''}
print(dic.keys())          #高仿列表 结果是元组
print(dic.values())        #高仿列表 结果是元组
print(dic.items())         #元组形式
不能使用下标
输出结果:
dict_keys([1, 2, 3])
dict_values(['', '', ''])
dict_items([(1, ''), (2, ''), (3, '')])

字典的嵌套

不再详述

集合的定义-set

set集合是python的⼀个基本数据类型. ⼀般不是很常⽤. set中的元素是不重复的.⽆序的.⾥ ⾯的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但 是不保存value, 只保存key. set也⽤{}表⽰
注意:注意: set集合中的元素必须是可hash的, 但是set本⾝是不可hash得.set是可变的.
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典的,还有set集合的值必须是不可变的
例如: se = set()
如:整型,字符串,元祖.不能是列表,字典等可被修改的数据

集合的操作

se.add(值)

se = {0,1,2,'h','lol',(1,2)}
se.add(3)
print(se)
运行结果:{0, 1, 2, (1, 2), 3, 'lol', 'h'}
se.update('可迭代对象') 迭代更新

se = {1,2,'ha','lal',4}
msg = '你好啊'
se.update(msg)#迭代更新,跟dic.fromlkeys()有点像
print(se)
运行结果:{1, 2, '', 4, '', '', 'lal', 'ha'}

 

del se 删除整个列表
se.pop() 随机删除

se = {1,2,'ha','lal',0,4}
se.pop()
print(se)
运行结果:{1, 2, 4, 'lal', 'ha'}
se.remove(元素)

se = {1,2,'ha','lal',0,4}
se.remove(1)
print(se)
运行结果:{0, 2, 4, 'ha', 'lal'}

 

集合的其他操作

交集

两个集合里面都存在的数据,可以使用&或者使用函数intersection来获取两个集合的交集.

se = {1,2,'ha','lal',0,4}
se1 =  {1,3,'ha','lal',0,4}
print(se & se1)
print(se.intersection(se1))

并集

将两个集合进行合并,如果两个元素相同合并一个城元素,如果两个元素不相同就添加进来.使用|符号或者使用union()函数

se = {1,2,'ha','lal',0,4}
se1 =  {1,3,'ha','lal',0,4}
print(se | se1)
print(se.union(se1))

差集

用第一个集合减去第二个集合里共同存在的元素.使用符号-或者使用函数difference()来实现

se = {1,2,'ha','lal',0,4}
se1 =  {1,3,'ha','lal',0,4}
print(se - se1)
print(se.difference(se1))
输出结果:{2}

反交集

将两个集合进行合并,并去除相同的元素,使用符号^或者symmetric_difference

se = {1,2,'ha','lal',0,4}
se1 =  {1,3,'ha','lal',0,4}
print(se ^ se1)
print(se.symmetric_difference(se1))
运行结果:{2, 3}

子集

一个集合是否在另一个集合中,也就是一个集合是否被另一个集合所包含.如果被另一个集合包含返回True,否则返回False.使用<符号或者issubset()

se = {1,2,'ha','lal',0,4}
se1 =  {1,3,'ha','lal',0,4}
print(se < se1)
print(se.issubset(se1))
运行结果:False

超级

与子集相反,判断一个集合是否包含另一个集合,如果包含另一个集合返回True否则返回False.使用符号>或者issuperset()

se = {1,2,'ha','lal',0,4}
se1 =  {1,3,'ha','lal',0,4}
print(se > se1)
print(se.issuperset(se1))
运行结果:False

forzenset(可迭代对象)

返回一个冻结的集合.被冻结的集合不能进行修改,删除,添加等操作.如果不写参数,则返回一个冻结的空的集合.参数是可迭代对象所以可以是列表,字典等

se = {1,2,'ha','lal',0,4}
lst = [1,2,3,4]
dic = {1:'hao',2:'buhao'}
se1 = frozenset(se)
lst1 = frozenset(lst)
dic1 = frozenset(dic)
print(se1)
print(lst1)
print(dic1)
运行结果:
frozenset({0, 1, 2, 'ha', 4, 'lal'})
frozenset({1, 2, 3, 4})
frozenset({1, 2})

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Ailsa-a/p/10235225.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值