Python123作业六:数据结构

目录

1.基本统计值计算

3.字典翻转输出

4.人名最多数统计

5.数字不同数之和

6.列表元素计算

7.字典最大值

8.输出一串字符对应的Unicode值

10.字典值求和

11.列表增加元素

12.计算消费总额

13.字典 I

14.中文字符替换

15.双一流高校及所在省份统计

16.最大值

17.字典 II


1.基本统计值计算

获取以逗号分隔的多个数据输入(输入为一行),计算基本统计值(平均值、标准差、中位数)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

除中位数外,其他输出保留小数点后两位。

def getNum():       #获取用户不定长度的输入
    s = input()
    ls = list(eval(s))
    return ls

def mean(numbers):  #计算平均值
    s = 0.0
    for num in numbers:
        s = s + num
    return s / len(numbers)

def dev(numbers, mean): #计算标准差
    sdev = 0.0
    for num in numbers:
        sdev = sdev + (num - mean)**2
    return pow(sdev / (len(numbers)-1), 0.5)

def median(numbers):    #计算中位数
    numbers.sort()
    size = len(numbers)
    if size % 2 == 0:
        med = (numbers[size//2-1] + numbers[size//2])/2
    else:
        med = numbers[size//2]
    return med

n =  getNum() #主体函数
m =  mean(n)
print("平均值:{:.2f},标准差:{:.2f},中位数:{}".format(m, dev(n,m),median(n)))

2.人名独特性统计

编程模板中给出了一个字符串,其中包含了含有重复的人名,请去重后给出独特性人名的统计。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

输出模板中字符串共有多少个独特人名。

l = s.split()
l_set = set(l)
print(len(l_set))

3.字典翻转输出

读入一个字典类型的字符串,反转其中键值对输出。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

即,读入字典key:value模式,输出value:key模式。

a = eval(input())
try:
    d = dict()
    for b in a:
        d[a[b]] = b
    print(d)
except:
    print("输入错误")
       

4.人名最多数统计

编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。

ls = s.split()
d = {}
for i in ls:
    d[i] = d.get(i, 0) + 1
max_name, max_cnt = "", 0
for k in d:
    if d[k] > max_cnt:
        max_name, max_cnt = k, d[k]
print(max_name)

5.数字不同数之和

获得用户输入的一个整数 N,输出 N 中所出现不同数字的和。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

N = input()
list = []
list.extend(N)
new_set = set(list)
sum = 0 
for i in new_set:
    sum += int(i)
print(sum)

6.列表元素计算

def mean(numlist):
    s = 0.0
    for num in numlist:
        s = s + num
    return s/len(numlist)
#请输入一个列表:
ls = eval(input())
print("average:",mean(ls))

7.字典最大值

输出字典fruits中键值最大的键值对。完善代码。

fruits = {"apple":10,"mango":12,"durian":20,"banana":5}
m = 'apple'
for key in fruits.keys():
    if fruits[key] == max(fruits.values()):
        m = key
#此段代码请完善
print('{}:{}'.format(m,fruits[m]))

8.输出一串字符对应的Unicode值

获得用户输入的一个字符串,输出每个字符对应的Unicode值,这些值一行输出,采用逗号分隔,最后没有逗号。请完善代码。

s = input("")#输入一个字符串
ls = []
for c in s:
    ls.append(str(ord(c)))
print(",".join(ls) )

10.字典值求和

请补充横线处的代码。dictMenu中存放了你的双人下午套餐(包括咖啡2份和点心2份)的价格,让Python帮忙计算并输出消费总额。

dictMenu = {'卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26}
sum = 0
v = dictMenu.values()
for i in v:
    sum +=  i
print(sum)

11.列表增加元素

随机产生10个100以内的整数,随机数种子是10,将这10个数添加到列表中。请完善代码。

import random
ls=[]
random.seed(10)
for i in range(10):
    a=random.randint(0,100)
    ls.append(a)
print(ls)

12.计算消费总额

请补充横线处的代码。dictMenu 中存放了你的双人下午套餐(包括咖啡 2 份和点心 2 份)的价格,计算并输出消费总额。

dictMenu = {'卡布奇洛':32,'摩卡':30,'抹茶蛋糕':28,'布朗尼':26}
v = dictMenu.values()
sum = 0
for i in v:
    sum +=  i
print(sum)

13.字典 I

请补充如下代码,将字典 d 中所有键以列表形式输出

d={123:"123",456:"456",789:"789"}

print(list(d.keys()))

d = {123:"123", 456:"456", 789:"789"}
print(list(d))

14.中文字符替换

获得用户输入的一个数字,替换其中 0~9 为中文字符“〇一二三四五六七八九”,输出替换后结果。请完善代码。

n = input("请输入一个数字:")
s = "〇一二三四五六七八九"
for c in "0123456789":
    n = n.replace(c,s[eval(c)])
print(n)

15.双一流高校及所在省份统计

字典 d 中存储了我国 42 所双一流高校及所在省份的对应关系,请以这个列表为数据变量,完善 Python 代码,统计各省份学校的数量。

shengfen = list(d.values())
count = {}
for i in shengfen:
    if i not in count:
        count[i] = 1
    else:
        count[i] += 1
items = list(count.items())
for i in range(len(items)):
    area,count = items[i]
    print(f"{area}:{count}")

16.最大值

输入一组数字,采用逗号分隔,输出其中的最大值。

a = input()
b = a.split(",")
empty_list = []
for i in b:
    empty_list.append(int(i))
print(max(empty_list))

17.字典 II

输出字典 fruits 中键值最大的键值对。请完善代码。

fruits = {"apple":10,"mango":12,"durian":20,"banana":5}
m = 'apple'
for key in fruits.keys():
    if fruits[key] == max(fruits.values()):
        m = key
print('{}:{}'.format(m,fruits[m]))

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值