作业:列表推导式

在这里插入图片描述

# 数据如下: (大家可以自行拟定,想一下你需要什么数据结构)
# 1.电视6000、空调15000、洗衣机5000、电冰箱8000
# 2.床12000、衣柜9000、书桌4000、沙发10000、茶几电视柜5000
# 3.地面8000、墙面5000、吊顶6000、地板10000

# 输出要求: (以下全部使用推导列表完成)
# 1.计算家用电器的总花销
# 2.计算家具的总花销
# 3.计算房屋装修的总花销
# 4.计算全部总花销
# 5.输出花销超过5000的项

electric_Appliances={'电视':6000,'空调':15000,'洗衣机':5000,'电冰箱':8000}

furniture_list={'床':12000,'衣柜':9000,'书桌':4000,'沙发':10000,'茶几电视柜':5000}

renovation_list={'地面':8000,'墙面':5000,'吊顶':6000,'地板':10000}

#家用电器总花销
electric_expense=[x for x in electric_Appliances.values()]
print('家用电器总花销:'+str(sum(electric_expense)))

#家具总花销
furniture_expense=[y for y in furniture_list.values()]
print('家具总花销:'+str(sum(furniture_expense)))

#装修总花销
renovation_expense=[z for z in renovation_list.values()]
print('装修总花销:'+str(sum(renovation_expense)))

#全部总花销
total_expense=sum(electric_expense)+sum(furniture_expense)+sum(renovation_expense)
print('全部总花销:'+str(total_expense))

#超过5000的项目
total_project={'电视':6000,'空调':15000,'洗衣机':5000,'电冰箱':8000,'床':12000,'衣柜':9000,'书桌':4000,'沙发':10000,'茶几电视柜':5000,'地面':8000,'墙面':5000,'吊顶':6000,'地板':10000}
exceed_project=[t for t in total_project.keys() if total_project.get(t) > 5000]
print(exceed_project)

参考答案:

#先来搞一下我们的数据,程序的开始 始于变量 
appliances_dic = {'电视':6000,'空调':15000,'冰箱':8000,
                '洗衣机':5000,'热水器':5000,'厨房电器':8000,
                '电脑':6000}

furniture_dic = {'床':12000,'沙发':10000,'衣柜':9000,
               '茶几电视柜':5000,'餐桌':4000,'橱柜':7000,
               '书桌电脑桌':4000}


decorate_dic = {'地面':8000,'墙面':5000,'地板':10000,'厨房':5000,
              '卫生间':4000,'瓷砖':10000,'吊顶':6000,'灯具':5000,
              '管线开关':5000}


#独立项目合计
decorate_list_total = [v for v in decorate_dic.values()]
print('装修总费用:'+str(sum(decorate_list_total)))

#独立项目合计
appliances_list_total = [v for v in appliances_dic.values()]
print('家用电器总费用:'+str(sum(appliances_list_total)))

#独立项目合计
furniture_list_total = [v for v in furniture_dic.values()]
print('家具总费用:'+str(sum(furniture_list_total)))

#全部总计
print('合计总费用:'+str(sum(decorate_list_total)+sum(appliances_list_total)+sum(furniture_list_total)))

#我们使用copy 建立一个新的对象 然后把三个大类放在一起 为计算大于5000的项做好数据准备
dic_total = decorate_dic.copy()
dic_total.update(appliances_dic)
dic_total.update(furniture_dic)

# print(dic_total)


dd = {'地面':8000,'墙面':5000,'地板':10000,'厨房':5000}

print('费用超过5000的项目:')
                    #遍历原始数据的key 记住我们添加的是key 对当前key的值value判断是否大于5000
morethan_5000_item = [k for k in dic_total.keys() if dic_total.get(k)>5000]
    
print(morethan_5000_item)

注:1.字典的增删改查:
(1)把字典B添加到字典A中:

A= {'Name': 'Zara', 'Age': 7}
B = {'Sex': 'female' }

A.update(B)
print(A)

输出结果:

{'Name': 'Zara', 'Age': 7, 'Sex': 'female'}

(2)返回键:字典.keys( )
返回值:字典.values( )

2.python中的 .get( )函数:
(1).get()函数是Python字典用于返回键值的函数,可以参考以下代码:

dict_1 = {'name': '小王', 'sex': '男', 'age': '18'}
 
print(dict_1.get('name'))
print(dict_1.get('work', {}))

得到结果:

小王
{}

在这里如果没有对应的键,返回一个空值。

3.python中的 .copy( )函数:

a=[1,2,3,4]
b=a.copy()
print(b)

输出结果:

[1,2,3,4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值