一、主要目的:
1.熟悉组合数据的类型。
2.掌握列表、元组、字典、集合等组合数据的创建、访问方法。
3.掌握组合数据推导式的使用方法
4.熟悉组合数据的常见应用。
二、主要内容和结果展示:
1. 使用两种方法将两个列表中的数据合并。
list1=[1,2,3]
list2=[3,4,5,6]
#方法一:
list3=list1 + list2
print(list3)
#方法二:
list1.extend(list2)
print(list1)
2.列表 list 中包含10个1~100 之间的随机整数,将列表 list 中的奇数变成它的平方,偶数变成它的立方。编程实现上述功能。
list1=list(map(int,input("请输入1~100间10个不同的整数:").split()))
for i in range(0,10):
if list1[i] % 2 == 0:
list1[i] = list1[i] ** 3
else:
list1[i] = list1[i] ** 2
print(list1)
3. 列表 ist =[3,8,11,26,47],从键盘输入一个新的元素,将该元素插入列表list中,保持列表list1 中的元素有序。编程实现上述功能。
list1 = [3, 8, 11, 26, 47]
num = int(input("请输入一个新元素:"))
list1.append(num)
list1.sort()
print(list1)
4.编写一个程序,删除列表中的重复元素。
list1 = [1, 2 , 9, 10, 2, 2, 9, 7]
list2 = []
for i in list1:
if i not in list2:
list2.append(i)
print(list2)
5. 元组tuple 中包含20个1~10之间的随机整数,统计每个整数在元组tuple 中出现的次数。
tuple1 = (1, 3, 6, 1, 9, 4, 4, 1, 7, 5, 6, 1, 1, 0, 2, 5, 4, 7, 9, 1)
list2 = []
for i in tuple1:
if i not in list2:
list2.append(i)
list2.sort()
tuple2 = tuple(list2)
for j in tuple2:
print("%d在元组中出现%d次"%(j,tuple1.count(j)))
6. 元组grade = (68, 87,83,91,93,79,68,86,66,78),按学号从小到大的顺序保存学生的成绩,
实现如下功能:
(1)输出 grade 中的第2个元素。
(2)输出 grade 中的第 3~7个元素。
(3)使用 in 查询grade 中是否包含成绩 87。
(4)调用 index()函数在grade 中查找给定成绩为 78的学生学号。
(5)调用 count() 函数查询成绩 68 在grade 中的出现次数。
(6)使用 len()函数获取 grade 中的元素个数。
grade = (68, 87, 82, 91, 93, 79, 68, 86, 66, 78)
print("grade中的第2个元素:",grade[1])
print("grade中的第3~7个元素:",grade[2:7])
if 87 in grade:
print("grade中包含成绩87!")
else:
print("grade中不包含成绩87!")
print("成绩为78的学生学号:",grade.index(78) + 1)
print("68在grade中出现的次数为",grade.count(68))
print("grade中元素个数为",len(grade))
7. setl ={ 2,5,9,1,3},set2= {3,6,8,2,5},调用集合操作符或函数完成以下功能:
(1)向 set1 中添加一个新的元素7。
(2)求set1 和set2 的并集。
(3)求 setl 和set2 的交集。
(4)求 setl 和 set2 的差集。
(5)判断给定关键字key=4 是否在set1 或 set2中
set1 = {2, 5, 9, 1, 3}
set2 = {3, 6, 8, 2, 5}
set1.add(7)
print(set1)
set1.remove(7)
print(set1 | set2)
print(set1 & set2)
print(set1 - set2)
if 4 in (set1 | set2):
print("关键字4在set1或set2中!")
else:
print("关键字4不在set1或set2中!")
8.计算小明一天的生活费用,包括“早餐” 费用、“中餐” 费用、“晚餐”费用、“其他费用”等。给这些费用设定合理的值,并计算费用总和。
money = {"早餐":10, "中餐":25, "晚餐":25, "其他费用":10}
sum = 0
for n in money.values():
sum += n
print("小明一天的费用总和为",sum)
9.将某班学生的《Python 程序设计》这门课程的成绩保存在字典中,学号为键(key),分数为值(value)。实现如下功能:
(1)向字典中添加学生成绩。
(2)修改字典中指定学生成绩。
(3)刪除指定学生成绩。
(4)杳询指定学生成绩。
(5)统计学生成绩,如最高分、最低分、平均分等。
score = {1:30, 2:99, 3:60, 4:88}
print("学生的学号及对应成绩为:",score)
score[5] = int(input("添加学生5的成绩为:"))
print("学生的学号及对应成绩为:",score)
n, student = map(int,input("指定学生学号及修改后成绩:").split())
score[n] = student
print("学生的学号及对应成绩为:",score)
n = int(input("指定学生学号删除成绩:"))
del score[n]
print("学生的学号及对应成绩为:",score)
n = int(input("指定学生学号查询成绩:"))
print("学生成绩为:",score[n])
print("学生的成绩的最高分、最低分、平均分
为:",max(score.values()),min(score.values()),sum(score.values())/4)
四、心得体会
通过这次实验,我对Python中的组合数据类型有了更深入的理解和应用。我学习了列表、元组、字典和集合这几种组合数据类型的创建和访问方法,同时也掌握了它们的一些常用操作,比如列表的合并、元组的计数、字典的键值操作和集合的集合运算等。
在实验过程中,我发现列表非常适合用于存储可以修改的数据序列,而元组则适合存储不需要修改的数据序列。字典是一个非常强大的数据结构,它提供了映射关系的存储方式,这对于需要键值对应的数据处理非常有用。集合则提供了一种存储无序唯一元素的方法,它的集合操作对于数学问题的求解或者数据去重非常有帮助。
此外,我学习了数据推导式的使用方法,这是一种非常简洁的数据生成方法,可以用更少的代码来完成复杂的数据处理。通过这种方法,我能够更有效率地编写代码,提高编程工作的效率。
在应用方面,我意识到组合数据类型在数据处理、存储和算法实现中的重要性。无论是在学术研究还是在工业实践中,这些数据结构都是不可或缺的工具。通过本次实验,我不仅提高了编程技能,而且提升了解决问题的能力。
总体来说,这次实验让我对Python语言中组合数据类型有了更加全面的了解,我相信这将对我的未来学习和工作产生积极的影响。