《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第5章 序列、集合和字典 课后习题答案【强烈推荐】

点个👍吧,秋梨膏!!!!!,建议收藏一波
第5章 序列、集合和字典

  1. Python中,通过列表中的index方法可以根据指定值查找第一个匹配的列表元素的位置。

  2. Python中,通过列表中的insert方法可以将一个元素插入到列表的指定位置。

  3. 若在列表的最后添加新元素,则可以直接使用列表的append方法。

  4. 使用del语句可以删除某个变量或列表中的某个元素。

  5. 使用max方法可以获取一个列表中最大元素的值。

  6. 使用min方法可以获取一个列表中最小元素的值。

  7. 使用列表中的count方法可以统计某个值在列表中出现的次数。

  8. Python中集合有两种插入元素的方法,分别是add和update。

  9. 集合中的issubset方法可以用于判断一个集合是否是另一个集合的子集。

  10. 集合中的issuperset方法可以用于判断一个集合是否是另一个集合的父集。

  11. 使用del可以删除某个元素,也可以使用字典中的pop方法删除指定键的元素。

  12. 使用字典中的clear方法可以一次将一个字典中的所有元素都清除。

  13. 判断字典中是否存在某个键可以使用字典中的get方法,也可以使用成员运算符in。

  14. 已知ls=[x*2 for x in range(5)],则print(ls)的输出结果为[0,2,4,6,8]。

  15. 迭代器是指可以通过next函数不断获取下一个值的对象。

  16. 下列属于可变类型的是(A)
    A. 列表
    B. 元组
    C. 字符串
    D. 数字

  17. 下列叙述正确的是(B)
    A. 列表和元组都是用一对中括号括起来的多个元素的有序集合,各元素之间用逗号分隔
    B. 列表是用一对中括号括起来的多个元素的有序集合,各元素之间用逗号分隔,元组是用一对小括号括起来的多个元素的有序集合,各元素之间用逗号分隔
    C. 列表是用一对小括号括起来的多个元素的有序集合,各元素之间用逗号分隔,元组是用一对中括号括起来的多个元素的有序集合,各元素之间用逗号分隔
    D. 列表和元组都是用一对小括号括起来的多个元素的有序集合,各元素之间用逗号分隔

  18. 关于复制列表元素说法错误的是(C)
    A. Python中,通过赋值运算实际上是将两个变量指向同一个对象,而不是将一个变量的值赋给另一个变量。
    B. 采用元素截取的方法,可以根据一个已有列表对象复制出另一个新的列表对象,后面对两个对象的操作完全独立
    C. 如果一个列表中包含列表类型的元素,元素截取的方法完全可行,两个列表中的相同列表类型的元素完全独立
    D. 为了真正实现列表的复制操作,可以使用Python在copy模块中提供的deepcopy函数

  19. 已知学生类中有属性name和sno,列表ls中含有若干学生对象,若要求列表ls按照学生的姓名的降序排序,相应的语句是(A)
    A. ls.sort(key=lambda stu:stu.name,reverse=True)
    B. ls.sort(key=lambda stu:stu.name)
    C. ls.sort(key=name,reverse=True)
    D. ls.sort(name)

  20. 下列叙述错误的是(C)
    A. 可以使用一对大括号{}或set函数创建集合
    B. 可以使用一对大括号{}或dict函数创建字典
    C. 可以使用{}或set()创建空集合
    D. 可以使用{}或dict()创建空字典

  21. 已知定义:
    d=dict(sno=‘1810100’, name=‘李晓明’, age=19,t=(3,4),s=[3,4,5])
    则len(d)的值为(A)
    A. 5
    B. 6
    C. 7
    D. 8

  22. 已知字典d,获取字典中键值集合的语句是(C)
    A. d.items()
    B. d.values()
    C. d.keys()
    D. d.get()

  23. 下列有关生成器叙述错误的是(D)
    A. 将列表生成表达式中的一对中括号改为一对小括号即可得到生成器
    B. 对于生成器对象,也可以像其他可迭代对象一样使用for循环遍历对象中的每一个元素
    C. 如果生成元素的方法比较复杂,不适合用for循环方式实现,我们还可以借助yield关键字利用函数实现生成器的功能
    D. 生成器就是一次性在内存中产生大量列表元素,占用大量的内存空间

  24. 关于说法正确的是(B)
    A. 列表是可迭代对象、但不是迭代器;同样,生成器是可迭代对象、但不是迭代器
    B. 列表是可迭代对象、但不是迭代器;而生成器既是可迭代对象、又是迭代器
    C. 列表既是可迭代对象、又是迭代器;而生成器是可迭代对象、但不是迭代器
    D. 列表既是可迭代对象、又是迭代器;而生成器是迭代器、但不是迭代对象

  25. 写出下面程序的运行结果。
    t1=(“zhangsan”,18,95.5)
    t2=()
    t3=(33,)
    t4=([44,55,66])
    t5=t1+t3
    print(t1,t2,t3,t4,t5)
    print(t5)
    print(max(t4))
    print(min(t4))
    答:运行结果为:
    (‘zhangsan’, 18, 95.5) () (33,) [44, 55, 66] (‘zhangsan’, 18, 95.5, 33)
    (‘zhangsan’, 18, 95.5, 33)
    66
    44

  26. 写出下面程序的运行结果。
    ls=[1,2,3,2,3,4]
    print(ls.index(4))
    print(ls.count(3))
    print(max(ls))
    print(min(ls))
    print(len(ls))
    del ls[3]
    print(ls)
    ls.sort(reverse=True)
    print(ls)
    答:运行结果为:
    5
    2
    4
    1
    6
    [1, 2, 3, 3, 4]
    [4, 3, 3, 2, 1]

  27. 写出下面程序的运行结果。
    import copy
    s1=[4,5,6]
    s2=s1
    s2[1]=“nk”
    print(s1,s2)
    s3=s1[1:3]
    s3[1]=“cn”
    print(s1,s3)
    s4=copy.deepcopy(s1)
    s4[1]=333
    print(s1,s4)
    s5=[4,[5,6]]
    s6=s5[1:3]
    s5[1][0]=“cn”
    print(s5,s6)
    s7=copy.deepcopy(s5)
    s7[1]=“nk”
    print(s5,s7)
    答:运行结果为:
    [4, ‘nk’, 6] [4, ‘nk’, 6]
    [4, ‘nk’, 6] [‘nk’, ‘cn’]
    [4, ‘nk’, 6] [4, 333, 6]
    [4, [‘cn’, 6]] [[‘cn’, 6]]
    [4, [‘cn’, 6]] [4, ‘nk’]

  28. 写出下面程序的运行结果。
    s1={1,2,3}
    s2=set([2,3,3,4])
    s1.add(3)
    s2.update(‘ab’)
    s3=s1.intersection(s2)
    s4=s1.union(s2)
    s5=s1.difference(s2)
    s6=s1.symmetric_difference(s2)
    print(s1)
    print(s2)
    print(s3)
    print(s4)
    print(s5)
    print(s6)
    答:运行结果为:
    {1, 2, 3}
    {2, 3, 4, ‘b’, ‘a’}
    {2, 3}
    {1, 2, 3, 4, ‘a’, ‘b’}
    {1}
    {1, 4, ‘b’, ‘a’}

  29. 写出下面程序的运行结果。
    d1={‘name’:“zhangsan”,‘sno’:“001”,‘score’:99}
    d2=dict().fromkeys([‘radius’,‘height’],0)
    print(d1)
    print(d2)
    d1.update({‘age’:19})
    d2.update(radius=10)
    print(d1)
    print(d2)
    del d1[‘age’]
    height=d2.pop(‘height’,‘not found’)
    print(d1)
    print(d2)
    print(height)
    print(len(d1))
    print(len(d2))
    答:运行结果为:
    {‘name’: ‘zhangsan’, ‘sno’: ‘001’, ‘score’: 99}
    {‘radius’: 0, ‘height’: 0}
    {‘name’: ‘zhangsan’, ‘sno’: ‘001’, ‘score’: 99, ‘age’: 19}
    {‘radius’: 10, ‘height’: 0}
    {‘name’: ‘zhangsan’, ‘sno’: ‘001’, ‘score’: 99}
    {‘radius’: 10}
    0
    3
    1

  30. 写出下面程序的运行结果。
    s1=[1,2,3,4,5,6,7,8,9,10]
    s2=list(range(10,20))
    s3=s1[2:8:2]
    s4=s2[-8::-2]
    print(s1)
    print(s2)
    print(s3)
    print(s4)
    答:运行结果为:
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    [3, 5, 7]
    [12, 10]

  31. 该程序用到字典的浅拷贝和深拷贝,已知程序运行结果,请将程序填写完整。
    import copy
    d1={‘name’:“zhangsan”,‘sno’:“001”,‘score’:{‘math’:99,‘C++’:88}}
    d2=d1.copy()
    d3=copy.deepcopy(d1)
    d1[‘name’]=“li”
    d1[‘score’][‘C++’]=90
    print(d1)
    print(d2)
    print(d3)
    已知程序运行结果为:
    {‘name’: ‘li’, ‘sno’: ‘001’, ‘score’: {‘math’: 99, ‘C++’: 90}}
    {‘name’: ‘zhangsan’, ‘sno’: ‘001’, ‘score’: {‘math’: 99, ‘C++’: 90}}
    {‘name’: ‘zhangsan’, ‘sno’: ‘001’, ‘score’: {‘math’: 99, ‘C++’: 88}}

点个👍吧,秋梨膏!!!!!,建议收藏一波
在这里插入图片描述

  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

henu-于笨笨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值