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

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

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. meterpreter php payload && windows payload 学习

    一 情景 本地kali linux 192.168.1.2 目标 windows NT 服务器192.168.1.4 目的是获取shell 二 过程 首先在linux建立终端 ,msfconsole ...

  2. 信号量解决理发师问题(barber)

    问题描述及思路         代码 一些细节见注释 这里ret应该用int..忘了改了.         运行结果 因为座位数和到来最大间隔的原因,没有出现全部椅子被占用的情况  

  3. zzuli-2259 matrix

    题目描述 在麦克雷的面前有N个数,以及一个R*C的矩阵.现在他的任务是从N个数中取出 R*C 个,并填入这个矩阵中.矩阵每一行的法值为本行最大值与最小值的差,而整个矩阵的法值为每一行的法值的最大值.现 ...

  4. 洛谷p1198 最大数

    #include <iostream> #include <cstdio> #include <algorithm> using namespace std; in ...

  5. 使用Benchmark.NET测试代码性能

    今天,我们将研究如何使用Benchmark.Net来测试代码性能.借助基准测试,我们可以创建基准来验证所做的更改是否按预期工作并且不会导致性能下降. 并非每个项目都需要进行基准测试,但是如果您正在开发 ...

  6. LeetCode 数组分割

    LeetCode 数组分割 LeetCode 数组怎么分割可以得到左右最大值的差值的最大 https://www.nowcoder.com/study/live/489/1/1 左右最值最大差 htt ...

  7. 使用 js 实现十大排序算法: 选择排序

    使用 js 实现十大排序算法: 选择排序 选择排序 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!

  8. SSL/TLS All In One

    SSL/TLS All In One HTTPS SSL/TLS 的工作原理 https://www.websecurity.digicert.com/zh/cn/security-topics/ho ...

  9. cnblogs 日期错乱 bug

    cnblogs 日期错乱 bug 时间错乱 bug archive/2004/01/13/ 什么鬼 呀默认时间戳 https://www.cnblogs.com/xgqfrms/archive/200 ...

  10. macOS & PostgreSQL

    macOS & PostgreSQL macOS 上安装 PostgreSQL 后为什么会自动创建一个系统用户账号 https://get.enterprisedb.com/postgresq ...