Python Day5 集合and字典

数据容器-set集合(不允许重复乱序

定义:{元素1,元素2,元素3}

set()

无序-不支持下标索引              和列表一样允许修改

#定义集合
my_set={"哈基米","胖宝宝","hajimi","哈基米"}
my_set_empty=set()
print(f"my_set的内容是:{my_set},类型是:{type(my_set)}")  #my_set的内容是:{'胖宝宝', 'hajimi', '哈基米'},类型是:<class 'set'>
print(f"my_set_empty的内容是:{my_set_empty},类型是:{type(my_set_empty)}") #my_set_empty的内容是:set(),类型是:<class 'set'>
#添加新元素
my_set.add("python")
my_set.add("胖宝宝")  #重复的无法添加
print(f"my_set添加元素后的结果为:{my_set}")  #my_set添加元素后的结果为:{'哈基米', 'python', '胖宝宝', 'hajimi'}
#移除元素
my_set.remove("hajimi")
print(f"my_set移除元素后的结果为:{my_set}")
#随机取出一个元素
my_set={"哈基米","胖宝宝","hajimi"}
element=my_set.pop()
print(f"集合中被取出的元素为:{element},取出元素后的集合为:{my_set}")#集合中被取出的元素为:胖宝宝,取出元素后的集合为:{'哈基米', 'hajimi'}
#清空集合
my_set={"哈基米","胖宝宝","hajimi"}
my_set.clear()
print(f"集合清空后结果为{my_set}")
#取两个集合的差集
set1={1,2,3}
set2={1,4,5}
set3=set1.difference((set2))     #set1中有而set2中没有的
print(f"取出差集后的结果为:{set3}") #取出差集后的结果为:{2, 3}
print(f"取出差集后,原set1的内容为:{set1}") #不变
print(f"取出差集后,原set2的内容为:{set2}")  #不变
#消除差集
#语法:集合1.difference_update(集合2)
#功能:对比集合1,2   在集合1内删除和集合2相同的元素
set1={1,2,3}
set2={1,4,5}
set1.difference_update(set2)
print(f"消除差集后集合1的结果为:{set1}")  #消除差集后集合1的结果为:{2, 3}
print(f"消除差集后集合2的结果为:{set2}")    #不变
#两个集合合并为1个
set1={1,2,3}
set2={1,5,6}
set3=set1.union(set2)
print(f"合并后set3的结果为:{set3}")   #合并后set3的结果为:{1, 2, 3, 5, 6}
print(f"合并后set2的结果为:{set2}")    #不变
#统计集合元素数量len()
set1={1,2,3,4,5,1,2,3,4,5}
num=len(set1)
print(f"集合内的元素数量有:{num}")    #5个
#集合的遍历-不能用while循环,因为集合不支持下标索引,可用for循环
set1={1,2,3,4,5}
for element in set1:
    print(f"集合中的元素有:{element}")
#案例-信息去重
#定义一个空集合  通过for循环遍历列表,在for循环中将列表元素添加至集合,最终得到元素去重后的集合对象,并打印输出
my_list=["哈基米","胖宝宝","哈基米","it"]
my_set=set()
for element in my_list:
    my_set.add(element)
print(f"集合添加后的结果为:{my_set}")

数据容器-字典

每一份数据都是key-value键值对

功能:通过key找到value           key不可重复

定义:{}同集合,不过存储的元素是一个个:键值对

{key:value,key:value,key:value,key:value}一个元素

my_dicy={key:value,key:value,key:value,key:value}

#定义空字典

my_dict={}

my_dict=dict()

字典的key和value可以为任何类型(key不可为字典)   所以字典可以嵌套

#定义字典
my_dict1={"旺旺":23,"呵呵":56,"滴滴":89}
#定义空字典
my_dict2={}
my_dict3 = dict()
print(f"my_dict1的内容为:{my_dict1},类型是{type(my_dict1)}")
print(f"my_dict2的内容为:{my_dict2},类型是{type(my_dict2)}")
print(f"my_dict3的内容为:{my_dict3},类型是{type(my_dict3)}")
#定义重复的字典
my_dict1={"旺旺":23,"旺旺":56,"滴滴":89}
print(f"my_dict1的内容为:{my_dict1}")  #my_dict1的内容为:{'旺旺': 56, '滴滴': 89}
#从字典中基于key获取Value
my_dict1={"旺旺":23,"呵呵":56,"滴滴":89}
score=my_dict1["旺旺"]
print(f"旺旺的分数为:{score}")    #23
#定义嵌套字典
#   姓名    语文   数学   英语
#   旺旺     23     34    45
#   呵呵     54     23    32
#   哈哈     87     43    24
stu_score_dict={
    "旺旺":{
        "语文":23,
        "数学":34,
        "英语":45
    },"呵呵":{
        "语文":54,
        "数学":23,
        "英语":32
    },"哈哈":{
        "语文":87,
        "数学":43,
        "英语":24
    }
}
print(f"学生的信息是{stu_score_dict}")
#获取呵呵的语文成绩
score=stu_score_dict["呵呵"]["语文"]
print(f"呵呵的语文成绩为:{score}")
#获取哈哈的英语成绩
score=stu_score_dict["哈哈"]["英语"]
print(f"哈哈的英语成绩为: {score}")

字典的常用操作:

新增/更新元素     语法:字典[Key]=Value      若key为字典中已有的则元素被更新,若key不存在于字典中,则字典被修改新增了一个对。

删除元素    语法:字典.pop(Key)

清空字典   语法: 字典.clear()

获取全部的key  语法:字典.keys()

my_dict={"呵呵":21,"哈哈":43,"旺旺":98}
#新增元素
my_dict["哇哦"]=90
print(f"字典新增后,结果是:{my_dict}")
#更新元素
my_dict["呵呵"]=33
print(f"字典更新后,结果是:{my_dict}")
#删除元素
score=my_dict.pop("呵呵")
print(f"字典被移除了一个元素后结果是:{my_dict},呵呵的分数是:{score}")
#清空元素,clear
my_dict.clear()
print(f"字典被清空了,内容是:{my_dict}")
#获取全部的key
my_dict={"呵呵":21,"哈哈":43,"旺旺":98}
keys=my_dict.keys()
print(f"字典的全部key有:{keys}")
#遍历字典
#方式1 通过获取全部的key来完成遍历
for key in keys:
    print(f"字典的key是:{key}")
    print(f"字典的value是:{my_dict[key]}")
#方式2 直接对字典进行for循环,每一次循环都是直接得到key
for key in my_dict:
    print(f"2字典的key是:{key}")
    print(f"2字典的value是:{my_dict}")
#统计字典内的元素数量
num=len(my_dict)
print(f"字典中的元素数量有:{num}")

字典支持for循环不支持value循环

案例:

#案例
stu_my_dict={
    "哈哈":{
        "部门":"科技部",
          "工资":3000,
          "级别":1
    },
    "呵呵":{
        "部门":"市场部",
           "工资":5000,
           "级别":2
    },
    "旺旺":{
        "部门":"市场部",
        "工资":"7000",
        "级别":3
    },
    "对对":{
        "部门":"科技部",
        "工资":4000,
        "级别":1
    },
    "勾勾":{
        "部门":"市场部",
        "工资":6000,
        "级别":2
    }
}
print(f"员工升值加薪前的结果是:{stu_my_dict}")
for name in stu_my_dict:
    if stu_my_dict[name]["级别"]==1:
        #获取员工信息字典
        employee_info_dict=stu_my_dict[name]
        #修改员工的信息
        employee_info_dict["级别"]=2
        employee_info_dict["工资"]+=1000
        #将员工信息更新回stu
        stu_my_dict[name]=employee_info_dict
print(f"员工升值加薪后的结果是:{stu_my_dict}")

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值