1.字典
1).什么是字典
——容器型数据类型(序列),将{}作为容器的标志,里面多个元素用逗号隔开
特点:可变,无序(不支持下标操作)
2).字典中的元素
——字典中的元素都是键值对,一‘键’:‘值’的形式出现,逗号隔开
字典存储数据主要是为了存值,键只是为了徐芬不同的值而存在的
键——必须是不可变的,唯一的
值——任何类型的数据都可以作为值,和列表元素一样
3).查——获取字典的值
获取单个元素——字典[key]-获取字典中指定key对应的值,key值不存在会报错
字典.get(key)/ 字典.get(key,默认值)-key值不存在分别返回None/默认值
4).遍历
——for key in 字典:-直接拿到的是字典的key
——for value in 字典.values():-直接拿到的是字典的值(消耗内存大)
——for key,value in 字典.items():-直接拿字典的key和值(消耗内存大)
5).增/改
增——添加键值对,改——修改字典中某个key对应的值
语法:字典[key] = 值——当key不存在就在字典中添加键值对,当key存在就修改字典中key对应的值
6).删
del 字典[key]——删除指定key对应的键值对
字典.pop(key)——取出字典中key对应的值并返回,并将键值对删除
7).相关运算
字典不支持:+、*、>、<、>=、<=
支持:==、!=
8).相关操作
in/not in——key in 字典—判断字典中是否存在某个键
max(字典)——判断的是字典中键的大小,并输出最大键
sum(字典)——前提是字典中的键可相加,输出键和
len(字典)——统计长度
dict(数据)——将指定数据转换成字典
数据的要求:数据本身是一个序列,序列中的元素必须是有且只有两个元素的小序列
[[元素1, 元素2],(元素1, 元素2), 'ab']
9).相关方法
dict.fromkeys(序列,值1)——创建一个新的字典,将序列中的元素作为字典的key,将值1作为每个key对应的value
字典.items()——将字典中的键值对转换成元祖作为容器中的元素
字典.values()——将字典中的值转换成元祖作为容器中的元素
字典.keys()——将字典中的键转换成元祖作为容器中的元素
字典.setdefault(key,value)——在字典中添加键值对,key存在不会有修改功能
字典1.update(字典2)——将字典2中的键值对全部添加到字典1中
student = ['小明', 18, '男', 89, 90, 155, 67]
student1 = {'name': '小明', 'age': 18, 'gender': '男',
'chinese': 89, 'english': 90, 'height': 155, 'weight': 67}
if student1['age'] >= 18:
print('能进入网吧')
for key in student1:
print(key)
student1.clear()
print(dict.fromkeys('abc'))
例题:用一个列表保持五只狗的信息,名字、年龄、颜色、体重,求平均年龄、找到体重最大的狗的名字
list1 = [{'name': '小黑', 'age': 3, 'color': '黑色', 'weight': 22},
{'name': '小白', 'age': 4, 'color': '白色', 'weight': 15},
{'name': '小花', 'age': 5, 'color': '花色', 'weight': 12},
{'name': '小黄', 'age': 2, 'color': '黄色', 'weight': 22},
{'name': '小绿', 'age': 6, 'color': '绿色', 'weight': 14}]
ages = 0
max1 = 0
y = []
for x in list1:
ages += x['age']
if max1 <= x['weight']:
max1 = x['weight']
y = x['name']
print(ages / len(list1))
print(y)
2.集合(set)
1).集合
容器型数据类型(序列),将{}作为容器的标志,多个元素用逗号隔开,和字典不一样的是,集合的元素是独立的数据不是键值对
特点:可变(增删)、无序(不支持下标操作)
注意:{}表示的是空字典,不是空集合
2).元素
——不可变的数据,唯一性(同一个元素只能有一个)
空集合:set1 = set()
3).查
——只支持遍历,不能单独获取某一个元素
4).增
——集合.add(元素) -在集合中添加一个元素
集合.update(序列) -将序列中的所有元素添加到集合
5).删
——集合.remove(元素) -删除集合中指定元素
6).相关操作
数学集合运算
——求并集:集合1|集合2;
——求交集:集合1 & 集合2;
——求差集:集合1-集合2;
——对称差集:集合1 ^ 集合2(两个集合除了公共部分剩下的部分)
——集合1 > 集合2:判断集合1是否包含集合2
——集合1 < 集合2:判断集合2是否包含集合1
set1 = {2, 1, 3, (2, 1, 3)}
print(set1)
for item in set1:
print(item)
set1 = {1, 2, 3, 4, 5, 6}
set2 = {4, 5, 6, 7, 8, 9}
print(set1 | set2)
print(set1 & set2)
print(set1 - set2)
print(set1 ^ set2)