6.6 练习
1. 分别举例说明现实中的什么信息适合用列表、元组、集合、字典来表示和处理。
2. 以统计指标的计算为例,说明为什么同样是处理大量数据,有的程序不需要使用数据集 合体来存储大量数据,而有的程序则需要。
3. 给定两个列表 s1 = [2005,7,2,8]
和 s2 = [’L’,’u’,’c’,'y']
,计算以下表达式:
(1)s1 + s2
(2)2 * s1
(3)s1[1]
(4)s2[1:3]
(5)s1[1] + s2[-1]
4. 对第 3 题中的列表进行以下操作后,s1 和 s2 的值是什么。各小题之间是独立的。
(1)s1.remove(2)
(2)s1.sort().reverse()
(3)s1.append([s2.index(’c’)])
(4)s2.pop(s1.pop(2))
(5)s2.insert(s1[2],’I’)
5. 修改程序 6.1,使程序能计算更多统计指标(如标准差)。
6. 程序设计:自己编程实现 Python 列表对象的方法。
(1)编写函数 count(aList, x)
,功能同 aList.count(x)
;
(2)编写函数 isin(aList, x)
,功能同 x in aList
;
(3)编写函数 index(aList, x)
,功能同 aList.index(x)
;
(4)编写函数 reverse(aList)
,功能同 aList.reverse()
。
7. 编写函数 shuffle(aList)
,其功能是像洗牌一样将列表打乱。
8. 利用筛法找出小于等于 n 的所有质数。基本思想是:首先创建从 2 到 n 的数值列表;然 后将列表的第一个数显示输出(是质数),并从列表中删除该数的所有倍数。重复以上过程 直至列表为空。例如,如果 n 为 10,则初始列表为[2, 3, 4, 5, 6, 7, 8, 9, 10]。输出 2,并删除 2、4、6、8、10。现在列表为[3, 5, 7, 9]。输出 3,删除 3、9。现在列表为[5, 7]。输出 5, 并删除 5。最后对[7]输出 7,删除 7。至此列表为空,程序结束。
9. 设计一个学生信息管理系统。每个学生包括学号、姓名、年龄等信息,大量学生数据存 储在文件中。程序开始后向用户显示一个操作菜单,包括向数据文件增加数据项、删除数据 项、查找数据项和退出等功能。用户选择菜单项后执行相应功能,执行完毕回到菜单界面。
11. 利用链表来实现堆栈数据结构。
12. 分别利用普通列表和链表来实现队列数据结构。