一 字典创建、访问、添加、删除、修改、内建函数、内建方法

创建,列表不能作为键,因为键不能变?字典也不能作为键

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字典与集合的更多相关文章

  1. Python字典和集合

    Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...

  2. 流畅的python 字典和集合

    介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...

  3. day3学python 字典+列表集合+文件读取

    字典+列表集合+文件读取 字典示例 ************************ 各地食品的三级菜单************************* 1.使用字典嵌套字典 2.采用死循环思路 3 ...

  4. Python 字典dict 集合set

    字典dict Python内置字典,通过key-value进行存储,字典是无序的,拓展hash names = ['Michael', 'Bob', 'Tracy'] scores = [95, 75 ...

  5. Python 字典和集合基于哈希表实现

    哈希表作为基础数据结构我不多说,有兴趣的可以百度,或者等我出一篇博客来细谈哈希表.我这里就简单讲讲:哈希表不过就是一个定长数组,元素找位置,遇到哈希冲突则利用 hash 算法解决找另一个位置,如果数组 ...

  6. Python字典和集合的内部实现

    1. 哈希表(Hash tables) 在Python中,字典是通过哈希表实现的.也就是说,字典是一个数组,而数组的索引是经过哈希函数处理后得到的.哈希函数的目的是使键均匀地分布在数组中.由于不同的键 ...

  7. 转:Python字典与集合操作总结

    转自:http://blog.csdn.net/business122/article/details/7537014 一.创建字典 方法①: >>> dict1 = {} > ...

  8. python 字典元组集合字符串

    s1 = ''hello, world!'' s2 = '\n\hello, world!\\n' print(s1, s2, end='') s1 = '\141\142\143\x61\x62\x ...

  9. Python字典、集合之高山流水

    字典dict字典是由大括号{键:值}组成.字典是无序的.字典的键必须是不可变数据类型.不能使用列表作为键,但可以使用元祖作为字典的键.例如: dict_ = {"test":&qu ...

  10. python字典与集合操作

    字典操作 字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划.字母来查对应页的详细内容. 语法: info = { 's1': "jack", 's3' ...

随机推荐

  1. VMware ESXi 开启嵌套虚拟化

    VMware ESXi 默认不支持嵌套虚拟化功能,需要修改相关配置文件才能支持. 1.Esxi主机开启ssh,修改 /etc/vmware/config 配置文件,在配置文件后面加入如下配置:vhv. ...

  2. ewebeditor 路径

    1.关键文件的名称和路径Admin_Login.asp 登录页面Admin_Default.asp 管理首页Admin_Style.aspAdmin_UploadFile.aspUpload.aspA ...

  3. React Query & SWR

    React Query & SWR HTTP request all in one solution React Query Hooks for fetching, caching and u ...

  4. macOS & uninstall app

    macOS & uninstall app https://support.apple.com/en-hk/guide/mac-help/install-and-uninstall-other ...

  5. Flutter使用WebSockets

    文档 注意是WebSockets而不是socket.io install dependencies: web_socket_channel: demo import 'dart:convert'; i ...

  6. NGK公链生态所如何保障用户的数字资产隐私安全?

    距离NGK生态所正式上线已经没剩下几天时间了,NGK全网算力总量正在持续猛增,NGK日活账户也在大幅度增多.可以看出,币圈的生态建设者们是十分看好NGK生态所的.那么,有这么多的生态建设者涌入NGK生 ...

  7. 「NGK每日快讯」2021.1.11日NGK第69期官方快讯!

  8. Linux零拷贝技术

    本文转载自Linux零拷贝技术 导语 本文讲解 Linux 的零拷贝技术,云计算是一门很庞大的技术学科,融合了很多技术,Linux 算是比较基础的技术,所以,学好 Linux 对于云计算的学习会有比较 ...

  9. CSS中Position属性static、absolute、fixed、relative

    在html中网页可以看成一个立体的空间,一个完整的页面是由很多个页面堆积形成的,如下图所示   CSS中Position属性有四个可选值,它们分别是:static.absolute.fixed.rel ...

  10. 使用OWASP Dependency-Check对应用做个安检

    俗话说"人怕出名猪怕壮",当系统小有名气以后就会被一些黑客盯上,三天两头的用各种漏洞扫描工具做渗透,如果不希望某天你负责的系统因为安全问题而出名,那就提前行动起来吧,这就是今天要讲 ...