【Python学习】第三天:字典、集合、集合运算(评论区里写作业)

字典

字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中。
映射:元素之间相互对应的关系

创建字典

# 方式1:{}
container = {}

# 方式2:dict()
container1 = dict()

添加键值对

# 往字典添加键值对
container[key] = value
# 创建字典
price = dict()

# 往字典中添加键值对
price['苹果'] = 5
price['香蕉'] = 10
price['桃子'] = 6
print(price)

if '苹果' in price:
    print('苹果的价格为:%d 元' %(price['苹果']))

if '梨' in price:
    print('梨的价格为:%d 元' %(price['梨']))
else:
    print('没有梨这个水果')

在这里插入图片描述

计算购买水果的价格

# 定字典价格 
price = dict({'苹果':5, '香蕉':10, '桃子':6})
print(price)
# 输入购买水果的种类数量,存储到变量n中
n = int(input('请输入购买水果的种类数量:'))
# 定义价格
sum_price = 0

for i in range(0,n):
    fruit = input('输入购买的水果%d的名称:' %(i + 1))
    num = int(input('输入购买的水果%d的数量:' %(i + 1)))
    
    # 如果输入的水果在price字典中
    if fruit in price:
        sum_price += price[fruit] * num
    else:
        print('没有%s这个水果' %(fruit))

# 输出总价
print('总价格为:%d 元' %(sum_price))

在这里插入图片描述

集合

python当中的内置数据结构,是一个无序的集,用来保存不重复的元素,和字典类型。集合中相邻元素之间用逗号分隔。
集合只能存储基础数据类型,如整型、浮点型、字符串和元组,不能存储可变数据类型,如列表、字典和集合。

创建集合

a = set() # 创建空集合必须用set
b = {1,2,'abc'}

集合转换

# 字符串
a = 'abcdefg'
strSet = set(a)
print('字符串转集合:',strSet)

# 元组
b = ('a','b','c','d','e','f','g')
tupleSet = set(b)
print('元组转集合:',tupleSet)

# 列表
c = ['a','b','c','d','e','f','g']
listSet = set(c)
print('列表转集合:',listSet)

# 字典
d = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7}
dictSet = set(d) # 取key,忽略value
print('字典转集合:',dictSet)

在这里插入图片描述

添加集合

# 添加\删除集合里的元素
a = set()
a.add('a')
a.add('b')
a.remove('a')
print(a)

在这里插入图片描述

集合运算

# 集合运算
a = {1,2,3,4}
b = {3,4,5,6}
# 交集
print('交集:',a & b)
print('交集:',a.intersection(b))

# 并集
print('并集:',a | b)
print('并集:',a.union(b))

# 差集
print('差集:',a - b)
print('差集:',a.difference(b))
print('差集:',b - a)
print('差集:',b.difference(a))

在这里插入图片描述

求两个班重名学生

num1 = int(input('班1人数:'))
class1 = set()
for i in range(num1):
    name = input('班1学生姓名:')
    class1.add(name)

num2 = int(input('班2人数:'))
class2 = set()
for i in range(num2):
    name = input('班2学生姓名:')
    class2.add(name)

print('班1和班2的重名学生:',class1 & class2)

在这里插入图片描述

作业一:假设已知小明、小红、小亮三个同学的语文、数学、英语成绩,如何使用python字典将姓名、学科、成绩作对应,并计算谁的总分最高?

在这里插入图片描述

作业二:俩班级,求在班级二出现班级一没有出现的名字

在这里插入图片描述

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@Dai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值