文章目录
一、字典(来自菜鸟教程)
1.字典(dict)的概念
1.字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 。
格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
2.特性:字典的作用和列表类似,都是用来存储对象的容器,但是字典的查询的效率非常好。
3.在字典中可以保存多个对象,每个对象都有唯一的名字.
2.字典的创建
1.如:
#使用大括号 {} 来创建空字典
emptyDict = {}
#打印字典
print(emptyDict)
#查看字典的数量
print("Length:", len(emptyDict))
#查看类型
print(type(emptyDict))
输出结果
{}
Length: 0
<class 'dict'>
也可以直接调用函数dict()创建 如:
d = dict('name' = aa, bu = 18)
2.字典的值可以是任意的对象,但是字典的键可以是任意的不可变的对象(int str bool tuple),字典中的键是不能重复的,不然后面的值会替换前面的值。
3.访问字典里的值
1.根据键来获取值 如:
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
dict['Name']: Runoob
dict['Age']: 7
2.双值序列:即是序列中只有两个值,[1,2] ('a,3') 'ab'
等,双值字序列,即是序列中的元素也是序列。[(1,2)],(2,3)]
3.用函数get(key,[,default])
该方法时用来根据键来获取字典中的值,如果获取的键不存在则返回None
也可以指定一个默认值,作为第二个参数,这样获取不到值时将会返回默认值。
4.字典的用法
1.len()
函数用来获取字典中的键值对的个数,in
用来检查字典中是否包含指定的键,not in
检查字典中是否不包含指定的值。
下面是in
和is
的对比
2.修改字典
(1)
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8 # 更新 Age
dict['School'] = "菜鸟教程" # 字典中没有则添加该项信息
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
dict['Age']: 8
dict['School']: 菜鸟教程
(2)用函数setdefualt(key,[,defualt])
可以用来向字典中添加key-value,注; 如果ke已经存在于字典中,则返回key值,不会对字典做任何的操作,如果不存在,则向字典中添加这个key,并设置value
如:
d ={}
result = d.setdefault('name', '好大个')
print(result)
3.更新字典
用函数 update([other])
将其他字典中key-value 添加到当前字典中,如果有重复的lkey,则会替换当前的值。
4.删除字典中的元素
(1)用del()
函数
dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del dict['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
(2)通过d.popitem()
方法,随机删除一个键值对,一般都会删除最后一个键值对。删除后将会返回key-value作为返回值返回,返回的是一个元组,元组中有两个元素,第一个是删除的key,第二个删除的是value,但是删除一个空的字典时会报错
(3)pop()函数根据key删除字典中的key-value
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
5.浅复制copy()
复制以后的对象和原对象是独立的,修改不会影响另一个,浅复制只是简单复制对象内部的值,若值也是一个可变的对象,这个可变对象不会被复制
4.字典的遍历三种方法
(1)通过函数keys()
d = {'name':'adc','age':18}
for k in d.keys() :
print(k)
(2)用函数values()
d = {'name':'adc','age':18}
for k in d.values() :
print(k)
该方法返回一个序列,序列中保存所有字典的左右的值
(3)items()
d = {'name':'adc','age':18}
for k,v in d.items() :
print(k,'=',v)
该方法会返回字典中的所有的项,并且返回的是一个序列,序列中含有双值子序列,双值指的是key,value
5.字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:
实例
#!/usr/bin/python3
dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Name’: ‘小菜鸟’}
print ("dict[‘Name’]: ", dict[‘Name’])
以上实例输出结果:
dict[‘Name’]: 小菜鸟
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:
实例
#!/usr/bin/python3
dict = {[‘Name’]: ‘Runoob’, ‘Age’: 7}
print ("dict[‘Name’]: ", dict[‘Name’])
以上实例输出结果:
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'
二、集合(set)
1.集合概念
(1)集合(set)是一个无序的不重复元素序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:
parame = {value01,value02,...}
或者
set(value)
如
s = {4,2,24,1,1}
print(s)
(2)可以通过set()将序列和字典转换为集合
2.集合的操作
(1)添加用函数 s.add(x)
将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。s.update( x )
将一个人集合中的元素添加到当前的集合中,也可以添加元素,且参数可以是列表,元组,字典等
(2)移除元素
s.remove( x )
:删除集合中的指定元素
s.clear( x )
:清空集合中的元素
s.pop()
随机删除集合中的一个元素
3.集合的运算
# & 交集
s1 = {1,2,3,4,5}
s2 = {2,3,5,7,8}
result = s1 & s2
print(result)
# | 并集
result = s1 | s2
print(result)
# - 差集
result = s2 - s1
print(result)
# ^ 异或
result = s1 ^ s2
print(result)
# <= 检查一个集合是否是另一个集合的子集
# 如果a子集中的元素全部在b个集合中,那么a是b的子集,b是a的全集
result = s1 <= s2
print(result)