Python字典与集合
一 字典创建、访问、添加、删除、修改、内建函数、内建方法
创建,列表不能作为键,因为键不能变?字典也不能作为键
dict1 = {}
dict2 = {'name':'qq','sex':'male','age':1000,'id':{'id1':'000','id2':'001'},('love','idea'):['book','small']}
访问,通过键的名称访问,若不存在,则抛出异常keyerror,访问格式为[][],不能嵌套,不能通过索引访问
print(dict2)
print('dict2["name"]',dict2['name'])
print('dict2["id"]["id1"]',dict2['id']['id1'])
print('dict2[("love","idea’)][0]',dict2[('love','idea')][0])
添加,通过新定义一个键并赋值的方法添加,或通过给原有键赋值的方法修改
dict1['name'] = 'qq'
print('dict1',dict1)
dict1['name'] = 'q'
print('dict1',dict1)
内建函数
print(len(dict2))#返回键的数目
print(str(dict2))
print(type(dict2))
dict.clear()删除字典内所有元素
dict1.clear()
print(dict1)
dict.copy():返回一个字典的浅复制
dict3 = dict2.copy()
print('dict3',dict3)
dict.fromkeys():创建一个新字典,以序列seq中的元素做字典的键,val为字典所有键对应的初始值
lists = [1,2,3]
tuples = ("hello",3,('hello','world'),'你好',())
dict4 = dict.fromkeys(dict2,1)#若传入字典,则键不变,值按传入的参数统一,无传入参数则为none
dict5 = dict.fromkeys(tuples)#传入类型可为列表和元组,但其子元素类型不能为列表和字典
dict6 = dict.fromkeys(lists)
print('dict4',dict4)
print('dict5',dict5)
print('dict6',dict6)
dict.get(key, default=None):返回指定键的值,如果值不在字典中则返回default值
print('dict2.get("name")',dict2.get('name'))
key in dict:如果键在字典dict里,则返回True,否则返回False
print('name'in dict2)
dict.items():以列表返回可遍历的(键, 值) 元组数组
print('dict2.items()',dict2.items())
dict.keys():以列表返回一个字典所有的键。
print('dict2.keys()',dict2.keys())
dict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default。
print(dict2.setdefault('hhh',9))#这里hhh不存在,于是添加一个新键,值为default,而我default设为9
print('dict2',dict2)
dict.update(dict2):把字典dict2的键/值对更新到dict里
dict7 = {1:1,'name':2}#这里的更新是指,把两个字典的键值对全放在1中如果有相同的,则由后者覆盖
dict7.update(dict2)
print('dict7',dict7)
dict.values():以列表返回字典中的所有值
print('dict2.values()',dict2.values())
判断字典是否为空
if dict2:
print('非空')
else:
print('空')
删除用del,与列表相似
二 集合创建、访问、更新、删除、操作符、内建函数、内建方法
创建,有两种集合,一种可变用set(添加和删除元素,是非可哈希,不能用作字典的键,也不能做其他集合的元素),一种不可变用frozenset与set相反(可作为键和集合元素)
列表不能哈希,不能作为参数传递,集合中元素不能相同
set1 = set(('hello','what'))#{'what', 'hello'}
set2 = set('python1123')#{'o', '1', 'p', '3', 'y', 'h', '2', 't', 'n'}
set3 = frozenset('python321')#frozenset({'n', '2', 't', 'y', 'h', '1', 'p', '3', 'o'})
set4 = set('python1234')#{'t', '1', '4', '3', '2', 'y', 'h', 'n', 'o', 'p'}
访问,只能通过遍历来实现
for i in set2:
print(i,end = ' ')
print('')
判断元素是否在集合中
print('hello'in set1)#True
print('hello'not in set3)
判断两个集合的关系
print(set2==set3)#是否相等True
print(set2!=set3)#是否不等False
print(set2<=set3)#2是否为1的子集True,相当于issubset()
print(set2>=set3)#2是否为1的超集True,相当于issuperset()
print(set2>set3)#2是否为1的真超集False
print(set2<set3)#2是否为1的真字集False
对两个集合进行操作,以及一些内建函数
set5 = set3 & set4#求交集,也就是相同的部分,相当于intersection()
print(set5)#frozenset({'y', 'p', 't', 'o', '3', '2', '1', 'h', 'n'}),不可变优先。
set6 = set1|set2#求并集,也就是和在一起后再去重,相当于union()
print(set6)#{'what', '2', 't', 'y', 'hello', 'h', 'p', 'n', '1', 'o', '3'}
set7 = set4-set2#差集,可以形象的理解为前面减后面,有相同的就减掉了,前面有后面没有的就保留下来,相当于difference()
print(set7)#{'4'}
set8 = set6^set1#对称差分,就是把相同的去掉,不同的留下来,相当于 symmetric_difference()
print(set8)#{'2', 'y', 'o', 'n', '3', '1', 't', 'p', 'h'}
set.update(t)用t中的元素修改set,即set现在包含set或t的成员。
set2.update(set1)
print(set2)#{'t', 'hello', 'h', '2', 'o', 'what', 'n', '3', 'y', 'p', '1'}
s中的成员是共同属于s和t中的元素
set2.intersection_update(set1)
print(set2)#{'what', 'hello'}
s中的成员是属于s但不包含在t中的元素。
set1.difference_update(set4)
print(set1)#{'what', 'hello'}
添加元素
set1.add('hi')
print(set1)#{'what', 'hi', 'hello'}
如果obj是集合s中的元素,从集合s中删除对象obj。
set1.discard('hello')
print(set1)#{'what', 'hi'}
任意删除一个元素并返回
print('set2.pop()',set2.pop())
print(set2)#{'hello'}
#如果obj是集合s中的元素,从集合s中删除对象obj。
set4.remove('1')
print(set4)#{'h', 'p', 'n', 'y', 'o', 't', '2', '3', '4'}
#清空集合
set4.clear()
print(set4)
内建函数
#可用len返回元素个数
print(len(set3))
print(tuple(set3))
print(list(set3))
print(str(set3))
#del 只能用于删除集合整体
#判断集合是否为空
if set4:
print('非空')
else:
print('空')
Python字典与集合的更多相关文章
- Python字典和集合
Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...
- 流畅的python 字典和集合
介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...
- day3学python 字典+列表集合+文件读取
字典+列表集合+文件读取 字典示例 ************************ 各地食品的三级菜单************************* 1.使用字典嵌套字典 2.采用死循环思路 3 ...
- Python 字典dict 集合set
字典dict Python内置字典,通过key-value进行存储,字典是无序的,拓展hash names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75 ...
- Python 字典和集合基于哈希表实现
哈希表作为基础数据结构我不多说,有兴趣的可以百度,或者等我出一篇博客来细谈哈希表.我这里就简单讲讲:哈希表不过就是一个定长数组,元素找位置,遇到哈希冲突则利用 hash 算法解决找另一个位置,如果数组 ...
- Python字典和集合的内部实现
1. 哈希表(Hash tables) 在Python中,字典是通过哈希表实现的.也就是说,字典是一个数组,而数组的索引是经过哈希函数处理后得到的.哈希函数的目的是使键均匀地分布在数组中.由于不同的键 ...
- 转:Python字典与集合操作总结
转自:http://blog.csdn.net/business122/article/details/7537014 一.创建字典 方法①: >>> dict1 = {} > ...
- python 字典元组集合字符串
s1 = ''hello, world!'' s2 = '\n\hello, world!\\n' print(s1, s2, end='') s1 = '\141\142\143\x61\x62\x ...
- Python字典、集合之高山流水
字典dict字典是由大括号{键:值}组成.字典是无序的.字典的键必须是不可变数据类型.不能使用列表作为键,但可以使用元祖作为字典的键.例如: dict_ = {"test":&qu ...
- python字典与集合操作
字典操作 字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划.字母来查对应页的详细内容. 语法: info = { 's1': "jack", 's3' ...
随机推荐
- Linux自带神器logrotate详解
Linux自带神器logrotate详解 散尽浮华 运维 3天前 作者:散尽浮华 链接:https://www.cnblogs.com/kevingrace/p/6307298.html 对于 L ...
- C# 数据类型(3)
动态类型 dynamic types 动态类型是后来引进的,他其实是一个static type,但是不像其他的静态类型,编译器不会检查你到底是啥类型(也不会检查你能不能去call某个'method') ...
- filter_var 函数()绕过执行命令
escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的 htmlspecialchars 函数定义如下: htmlsp ...
- 最新 Vue 源码学习笔记
最新 Vue 源码学习笔记 v2.x.x & v3.x.x 框架架构 核心算法 设计模式 编码风格 项目结构 为什么出现 解决了什么问题 有哪些应用场景 v2.x.x & v3.x.x ...
- React Toolchains
React Toolchains Create React App / component library https://create-react-app.dev/docs/getting-star ...
- Virtual Reality In Action
Virtual Reality In Action VR WebXR immersive 沉浸式 https://github.com/immersive-web/webxr https://imme ...
- 小程序 webview 自动打开新页面
小程序 webview 自动打开新页面 iframe 效果 https://nervjs.github.io/taro/docs/components/open/web-view.html 怎么阻止小 ...
- iPad pro & Mac mini
iPad pro & Mac mini
- 验证销售部门的数据查看权限-脚本demo
1 # coding:utf-8 2 ''' 3 @file: run_old.py 4 @author: jingsheng hong 5 @ide: PyCharm 6 @createTime: ...
- Linux下安装mysql-5.7.28详细步骤
一.下载Mysql 下载地址:https://downloads.mysql.com/archives/community/ 二.环境配置 检测系统是否自带Mysql # rmp -qa|grep m ...