python字典与集合操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python字典与集合操作相关的知识,希望对你有一定的参考价值。
字典操作
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
语法:
info = { ‘s1‘: "jack", ‘s2‘: "musker", ‘s2‘: "lili", }
字典的特性:
- dict是无序的
- key必须是唯一的,so 天生去重
增加
>>> info[‘s4‘] = "wangwu" >>> info {‘s2‘: ‘lili‘, ‘s1‘: ‘jack‘, ‘s4‘: ‘wangwu‘}
修改
>>> info[‘s3‘] = "丽丽" >>> info {‘s2‘: ‘lili‘, ‘s3‘: ‘丽丽‘, ‘s1‘: ‘jack‘, ‘s4‘: ‘wangwu‘}
删除
>>> info.pop(‘s1‘) ‘jack‘ >>> info {‘s2‘: ‘lili‘, ‘s3‘: ‘丽丽‘, ‘s4‘: ‘wangwu‘} >>> del info[‘s3‘] >>> info {‘s2‘: ‘lili‘, ‘s4‘: ‘wangwu‘} >>> info.popitem() (‘s2‘, ‘lili‘) >>> info {‘s4‘: ‘wangwu‘}
查找
>>> ‘s2‘ in info #标准用法 True >>> info.get(‘s2‘) #获取 ‘lili‘ >>> info[‘s2‘] #同上,但是看下面 ‘lili‘ >>> info[‘s5‘] #如果一个key不存在,就报错,get不会,不存在只返回None Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> info[‘s5‘] KeyError: ‘s5‘
其他操作
#values >>> info.values() dict_values([‘lili‘, ‘jack‘]) #keys >>> info.keys() dict_keys([‘s2‘, ‘s1‘]) #setdefault >>> info.setdefault(‘s6‘,‘musker‘) ‘musker‘ >>> info {‘s2‘: ‘lili‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘} >>> info.setdefault(‘s2‘,‘wangwu‘) ‘lili‘ >>> info {‘s2‘: ‘lili‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘} #update >>> info {‘s2‘: ‘lili‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘} >>> b = {1:‘a‘, 2:‘b‘} >>> info.update(b) >>> info {‘s2‘: ‘lili‘, 1: ‘a‘, 2: ‘b‘, ‘s6‘: ‘musker‘, ‘s1‘: ‘jack‘} #items >>> info.items() dict_items([(‘s2‘, ‘lili‘), (1, ‘a‘), (2, ‘b‘), (‘s6‘, ‘musker‘), (‘s1‘, ‘jack‘)]) #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个 >>> dict.fromkeys([1,2,3],‘testd‘) {1: ‘testd‘, 2: ‘testd‘, 3: ‘testd‘}
循环dict
#方法1 for key in info: print(key,info[key]) #方法2 for k,v in info.items(): #会先把dict转成list,数据里大时莫用 print(k,v)
集合操作
集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
常用操作
s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 基本操作: t.add(‘x‘) # 添加一项 s.update([10,37,42]) # 在s中添加多项 使用remove()可以删除一项: t.remove(‘H‘) len(s) set 的长度 x in s 测试 x 是否是 s 的成员 x not in s 测试 x 是否不是 s 的成员 s.issubset(t) s <= t 测试是否 s 中的每一个元素都在 t 中 s.issuperset(t) s >= t 测试是否 t 中的每一个元素都在 s 中 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() 返回 set “s”的一个浅复制
以上是关于python字典与集合操作的主要内容,如果未能解决你的问题,请参考以下文章