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

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

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. 导出Excel的异常处理

    问题: 提示:"类 Range 的 Select 方法无效" 处理方法: 设置当前工作表 this.worksheet.Activate();

  2. Leetcode(878)-第 N 个神奇数字

    如果正整数可以被 A 或 B 整除,那么它是神奇的. 返回第 N 个神奇数字.由于答案可能非常大,返回它模 10^9 + 7 的结果. 示例 1: 输入:N = 1, A = 2, B = 3 输出: ...

  3. μC/OS-III---I笔记11---就绪任务列表管理

    就绪优先级为映像响表 在UCOSIII内,任务调度是要先找到优先级最高的任务,然后执行.理论上对于UCOSIII可以有无数个优先级,每个优先级又可以有无数个任务但是对于这么多的任务如何快速查到到当先就 ...

  4. Hive Tutorial 阅读记录

    Hive Tutorial 目录 Hive Tutorial 1.Concepts 1.1.What Is Hive 1.2.What Hive Is NOT 1.3.Getting Started ...

  5. range()函数的使用、while循环、for-in循环等

    一.range()函数 用于直接生成一个整数序列 创建range对象的三种方式: (1)range(stop)    创建一个(0,stop)之间的整数序列,步长为1 (2)range(start,s ...

  6. Keras模型拼装

    在训练较大网络时, 往往想加载预训练的模型, 但若想在网络结构上做些添补, 可能出现问题一二... 一下是添补的几种情形, 此处以单输出回归任务为例: # 添在末尾: base_model = Inc ...

  7. js map(Number) All In One

    js map(Number) All In One map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值. let newArray = arr.map(callb ...

  8. 微软官方 free 教程 & 教材 ,MVC ,ASP.NET,.NET,

    MVA https://mva.microsoft.com/ebooks free ebooks 微软官方, free, 教程 ,教材,微软官方 free 教程 & 教材,MVC ,ASP.N ...

  9. Flutter & Scaffold & multiple floatingActionButton

    Flutter & Scaffold & multiple floatingActionButton demo import 'package:flutter/material.dar ...

  10. taro 如何展示多行文本 省略号

    taro 如何展示多行文本 省略号 webkit-box-orient: vertical; See the Pen Pure CSS multiline text with ellipsis by ...