头哥练习集合与字典作业5~~~~

5.作业的描述       

        李白是一个社区大学的老师,一天,他让学生小明计算一下温室里植物的平均高度。(注意,身高是不可以重复的)

求:平均高度 = 不同高度的和 / 不同高度的数量

 

def average(array):
    set1 = set(array)# 将重复元素删除
    num = len(set1)# 计算初数量的总数
    Sum = 0
    for i in set1:# 循环计算出总数
        Sum+=i
    return f"{(Sum / num):.3f}"
#你的代码写在这里list里面现在是整形的元素



if __name__ == '__main__':
    arr = list(map(int, input().split()))  # map()函数用于将列表中的每个元素都转换为整数
    result = average(arr)
    print(result)

        我们所要填写的是函数average里面的内容,这个函数的组要作用就是计算出平均高度 

        描述:因为是不可以重复的所以我们先可以用集合将列表转换一下,,在计算出集合的数量就是计算出物体的高度总数,在通过for循环将高度相加除以num就可以了

6.作业的描述 

        文件中包含有2018和2019手机销售榜单数据(市场份额百分数),请根据要求升序输出分析结果:

with open('step7/sale2019.csv', 'r', encoding='utf-8') as data2019:
    sale2019 = [[line.strip().split(',')[0], float(line.strip().split(',')[1])] for line in data2019]
with open('step7/sale2018.csv', 'r', encoding='utf-8') as data2018:
    sale2018 = [[line.strip().split(',')[0], float(line.strip().split(',')[1])] for line in data2018]
 
set2019 = set([x[0] for x in sale2019])
set2018 = set([x[0] for x in sale2018])
select = input()
if select == '1':
    print(sorted(set2019),sorted(set2018),sep='\n')
elif select == '2':
    print(sorted(list(set2019&set2018)))
elif select == '3':
    print(sorted(list(set2019|set2018)))
elif select == '4':
    print(sorted(list(set2019-set2018)))
elif select == '5':
    print(sorted(list(set2019^set2018)))

  7.作业的描述

        应用你的知识帮助你的好朋友小明,小明喜欢集邮,他有大量的来自不同国家的邮票,他决定数一下他的集邮册中共有来自多少个不同国家的邮票,他请你帮忙,你一个一个的把N张邮票拿出来,找出共有多少个不重复的国家。

        第一行输入一个整数N,表示所有邮票的数目 接下来的N行,每行输入一张邮票来自哪一个国家的名字  在一行中输出不重复的国家的数量

# 接下来的N行,每行输入一张邮票来自哪一个国家的名字
N = int(input())# 输入邮票的总数
list1 = []# 输入国家的名称
for i in range(N):
    a = input()
    list1.append(a)
set1 = set(list1)
print(len(set1))

通过循环将你要输入的国家信息存入列表中,通过set将列表强制转换输出即可set(可以取出重复的数据)

8.作业的描述

        第一行输入一个正整数 N,随后的N 行各输入一个人的姓名和年龄,中间用空格分隔(形如 “Tom 18” ),将字符串转为形如 {"name":"Tom","age":18} 的字典,按顺序加入到列表中,得到一个元素为字典的列表,分别根据年龄和姓名对其排序输出。

n=int(input())# 输入人数的总数
d={}# 定义一个空的字典,用来存放人的数据
ls= []# 定义一个列表来存放数据
a = {}# 用来存放输入的数据
for i in range (n):# 通过循环来输入人的基本信息
    a[i]=input().split()   
    d["name"] = a[i][0]# 姓名
    d["age"] = int(a[i][1])# 年龄
    ls.append(d.copy())   # 将个人的数据存放进入列表中
def cmp1(a):
    return a['age'] #返回字典的年龄 

def cmp2(a):
    return a['name']# 返回字典的姓名

ls.sort(key = cmp1)# 排序的过程
print(ls)

ls.sort(key = cmp2)
print(ls)

这一段代码是抄的别人的(注释是自己添加的将就看一看) 

9.作业的描述 

不做了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值