组合数据python

一、实验题目

组合数据

二、实验目的

  1. 熟悉组合数据的类型。
  2. 掌握列表、元组、字典、集合等组合数据的创建、访问方法。
  3. 掌握组合数据推导式的使用方法。
  4. 熟悉组合数据的常见应用。

三、实验内容

  1. 使用两种方法将两个列表中的数据合并。
  2. set1={2,5,9,1,3},set2={3,6,8,2,5},调用集合操作符或函数完成以下功能:
    1. 向set1中添加一个新的元素7.
    2. 求set1和set2的并集。
    3. 求set1和set2的交集。
    4. 求set1和set2的差集。
    5. 判断给定关键字key=4是否在set1或set2中。
  3. 将某班学生的《Python程序设计》这门课程的成绩保存在字典中,学号为键(key),分数为值(value)。实现如下功能:
  1. 向字典中添加学生成绩。
  2. 修改字典中指定学生成绩。
  3. 删除指定学生成绩。
  4. 查询指定学生成绩。
  5. 统计学生成绩,如最高分、最低分、平均分等。

四、实验步骤

题目一

(1)问题分析(含解决思路、使用的数据结构、程序流程图等

首先:得定义两个列表;

其次:使用两种方法合并,方法一:直接list1+list2;方法二:使用list.extend(list2),在列表末尾添加迭代对象list2中的所有元素作为列表新元素;

最后:输出结果。

(2)算法/代码描述(基本要求源代码
 

list1 = [1, 2, 3.5, '小孙']
list2 = [4, 5.6, '小志']
print("list1:", list1)
print("list2:", list2)
list = list1 + list2
print("合并后的列表为:", list)
list1.extend(list2)
print("合并后的列表为:", list1)

(3)运行结果(含执行结果验证、输出显示信息

题目二

(1)问题分析(含解决思路、使用的数据结构、程序流程图等

首先:要实现插入元素的操作,需要先定义这两个集合;

其次:(1)向集合中添加一个元素,使用set1.add(7);

          (2)实现并集,set1.union(set2);

          (3)实现交集,set1.intersection(set2);

          (4)实现差集,set1. difference(set2);

          (5)判断key是否在set中,item in set;

最后:输出结果。

(2)算法/代码描述(基本要求源代码
 

set1 = {2, 5, 9, 1, 3}
set2 = {3, 6, 8, 2, 5}
set1.add(7)
print("向set1插入7以后的set1:", set1)
print("set1和set2并集为:", set1.union(set2))
print("set1和set2交集为:", set1.intersection(set2))
print("set1和set2差集为:", set1. difference(set2))
print(4 in set1.union(set2))

(3)运行结果(含执行结果验证、输出显示信息

题目三

(1)问题分析(含解决思路、使用的数据结构、程序流程图等

首先:创建一个字典,dict1 = {"01": "89"}print("创建的一个字典为:", dict1) 
其次:
(1)添加学生成绩,dict1["02"] = "90"print("添加一个学生后的字典为:", dict1) 
       
(2)修改01号学生成绩,dict1["01"] = "77"print("修改01号的学生的字典之后:", dict1)
3)删除01号学生成绩,del dict1["01"]print("删除01号的学生的字    典之后:", dict1)
 (4)查询指定学生的成绩,print("查询学号02的学生成绩", dict1["02"])
然后:统计学生个数,计算最高分和最低分;
最后:输出结果。

(2)算法/代码描述(基本要求源代码

print("1.添加学生成绩")
print("2.修改指定学生成绩")
print("3.删除指定学生成绩")
print("4.查询指定学生成绩")
print("5.统计最高分、最低分、平均分")
dict1 = [{"学号":"01","成绩":89}]
while True:
    SN = int(input("请输入操作数:"))
    if SN in [1, 2, 3, 4, 5]:
        if SN == 1:
            search = False
            学号 = input("请输入学号:")
            for i in dict1:
                if 学号 == i["学号"]:
                    print("该学号已存在")
                    search =True
            if search == False:
                成绩 = int(input("请输入成绩:"))
                newdict1 = {}
                newdict1["学号"] = 学号
                newdict1["成绩"] = 成绩
                dict1.append(newdict1)
        elif SN == 2:
            学号 = input("清输入要修改的学生学号:")
            flag = False
            for i in dict1:
                if 学号 == i["学号"]:
                    flag = True
                    i["成绩"]=int(input("请输入成绩:"))
            if flag == False:
                print("该学号不存在")
        elif SN == 3:
            学号 = input("清输入要删除的学生学号:")
            flag = False
            for i in dict1:
                if 学号 == i["学号"]:
                    flag = True
                    dict1.remove(i)
            if flag:
                print("删除成功")
            else:
                print("该学号不存在")
        elif SN == 4:
            学号 = input("清输入要查询的学生学号:")
            flag = False
            for i in dict1:
                if 学号 == i["学号"]:
                    flag = True
                    print("学号:%s,成绩:%d"%(i["学号"],i["成绩"]))
            if flag == False:
                print("该学号不存在")
        elif SN == 5:
            sum = 0
            a = 0
            b = 100
            c = 0
            for i in dict1:
                sum = sum+i["成绩"]
                if a & i["成绩"]:
                    a = i["成绩"]
                if b & i["成绩"]:
                    b = i["成绩"]
                c = c +1
            print("平均分:", sum/c)
            print("最高分:", a)
            print("最低分:", b)
    else:
        print("操作数错误,请重新输入操作数")
        print("1.添加学生成绩")
        print("2.修改指定学生成绩")
        print("3.删除指定学生成绩")
        print("4.查询指定学生成绩")
        print("5.统计最高分、最低分、平均分")

(3)运行结果(含执行结果验证、输出显示信息

五、出现的问题及解决的方法

出现的问题

(1)print(list2.extend(list1))输不出结果;

(2)set1. union(set2)

        Print(set1)输不出结果

解决的办法

(1)写成list2.extend(list1)

         Print(list2)就输出结果啦;

(2)写成print(set1.union(set2))就可以啦;

在这次实验中,刚开始有点没有太理解题意,以为是要单独实现每个步骤,在实现对成绩平均值的时候,使用一些语句去使功能实现,慢慢去调整代码,可以使自己获得更快的能力提高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值