最新python入门基础第七章:字典与集合

================字典dic

字典存在的价值:可以在同时保存多个意义不同的数据时,通过key来对数据进行区分和说明

字典:

容器型数据类型;将{}作为容器的标志,里面的元素用逗号隔开

字典元素:必须是键值对

键,不可变数据类型,一般用字符串,且是唯一的

值:任何数据都可以,可重复,是字典真正保存的数据 (字典是可变的,支持增删改)

1)查 — 获取字典的值

字典[key] - 获取key对应的值,如果key不存在,会报错

字典.get(key) - 获取字典中指定key对应的值,如果值不存在,返回None

字典.get(key,默认值) - 获取字典中指定key对应的值,如果值不存在,返回默认值

2)遍历

for 变量 in 字典:

​ 循环体

# 练习:
# 1)统计班级中不及格学生的人数
# 2)计算所有学生的平均分
classes = [
    {
    
    'name': '小明', 'age': 26, 'score': 90, 'sex': '男'},
    {
    
    'name': 'sut1', 'age': 13, 'score': 89, 'sex': '女'},
    {
    
    'name': 'stu2', 'age': 22, 'score': 77, 'sex': '女'},
    {
    
    'name': 'stu3', 'age': 34, 'score': 56, 'sex': '男'},
    {
    
    'name': 'stu4', 'age': 15, 'score': 34, 'sex': '女'},
    {
    
    'name': 'stu5', 'age': 20, 'score': 70, 'sex': '女'}
]
n = 0
for x in classes:
    if x.get('score') < 60:
        n += 1
print(n)

n = 0
for x in classes:
    n += x['score']
print(n / len(classes))

3)增/改 ----添加键值对/修改键对应的值

字典[key] = 值 - 如果key不存在,就是添加key:值 对应的键值对;如果key存在,就是修改指定key对应的值

2)字典.setdefault(key,value) - 添加键值对(只能添加,不能修改)

3.删 - 删除键值对

1)del 字典[key] - 删除指定key对应键值对 如果key值不存在,会报错

2)字典.pop(key) - 取出指定key对应的值,并且返回key对应的值

============字典相关操作

1.运算符

字典仅支持判断是否相等或不相等 ==或者!=

2.in与not in

key in 字典(判断字典中是否存在指定的key值)

key not in 字典 (判断字典中没有这个key的值)

3.相关函数

sum(求和)、max(最大值)、min(最小值)、sorted(从小到大排序)(都是针对key是数字的时候的操作,作用不大)

len(字典) - 获取键值的个数

  • dict(数据) - 将指定数据转换成字典
    • 要求:1)数据本身是序列 2)序列中的每个小元素都是小序列 3)小序列中元素的个数为2 4)小序列的第一个元素不可变

4.字典转换成列表 - 将字典中的key作为列表元素

  • 字典.clear( ) - 清空字典

  • 字典.copy( ) - 赋值一个一模一样的字典并返回

  • dict.fromkeys(序列,值) - 创建一样新的字典,将序列中的元素作为字典的key,key的值就是指定的值

  • 字典.items( ) - 同时获取字典的key值和键值

d4 = {'a': 10, 'b': 20, 'c': 30}
list1 = dict([(value, key) for key, value in d4.items()])
print(list1)    # {10: 'a', 20: 'b', 30: 'c'}

list2 = [(d4[key], key) for key in d4]
print(list2)   # [(10, 'a'), (20, 'b'), (30, 'c')]
  • 字典.keys() - 获取所有的key(返回一个序列)
  • 字典.values() - 获取所有的值(返回一个序列)
  • 字典.update(序列) - 将序列中所有的元素以键值对的形式添加到字典
  • 序列:必须是必须是可以转换成字典的序列
============集合

集合set

容器:将{}作为容器的标志,多个元素用逗号隔开:{元素1,元素2,元素3}

元素:不可变且唯一,自带去重效果

可变的:无序的

1)空集合为set( )

2)集合不可变

3)集合的元素唯一

================================

数学集合运算:

并集(|)、交集(&)、差集(-)、对称查集(^)、子集(>=)、真子集(>)

1.并集
a = {1, 2, 3, 4, 5, 6}
b = {5, 6, 7, 8, 9}
print(a | b) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
2.交集
print(a & b) # {5, 6}
3.差集
print(a - b) # {8, 9, 7}
4.对称差集 - 在集合A和集合b中,只存在a中和只存在b中的集合
5.>=判断是否是子集,只要包含集合b就行
6.>判断是否是真子集

猜你喜欢

转载自blog.csdn.net/SaharaLater/article/details/111300780