• Python语言程序设计 习题7


    一、选择题

    1.Python语句print(type({1:1,2:2,3:3,4:4}))的输出结果是(   B   )。

    A.                 B.

    C.                   D.frozenset'>

    print(type({1:1,2:2,3:3,4:4}))

    2.以下不能创建字典的语句是(   C   )。

    A.dict1={}        B.dict2={3:5}

    C.dict3=dict([2,5],[3,4])    D.dict4=dict(([1,2],[3,4]))

    1. dict1={}
    2. dict2={3:5}
    3. dict4=dict(([1,2],[3,4]))
    4. print(dict1)
    5. print(dict2)
    6. print(dict4)

    C错误的原因是对dict()函数使用的不正确  


    dict()函数的使用:p132 

    1.使用dict()函数创建一个空字典并给变量赋值。

    1. d=dict()
    2. print(d)

     2.使用列表元组作为dict()函数的参数。

    在本题的C中,dict3=dict([2,5],[3,4]),dict()括号里面的参数并不是列表或元组

    可以修改为:

    1. d1=dict(([2,5],[3,4]))
    2. d2=dict([[2,5],[3,4]])
    3. print(d1)
    4. print(d2)

     3.将数据按“关键字=值”的形式作为参数传递给dict()函数

    1. d=dict(a=2,b=3)
    2. print(d)


    3.对于字典D={'A':10,'B':20,'C':30,'D':40},对第4个字典元素的访问形式是(    D  )。

    A.D[3]         B.D[4]         C.D[D]          D.D['D']

    4.对于字典D={'A':10,'B':20,'C':30,'D':40},len(D)的是(    A  )。p134

    A.4             B.8             C.10       D.12

    5.对于字典D={'A':10,'B':20,'C':30,'D':40},sum(list(D.values()))的值是(   B   )。p137

    A.10            B.100           C.40            D.200

    1. D={'A':10,'B':20,'C':30,'D':40}
    2. print(D.values())
    3. print(list(D.values()))
    4. print(sum(list(D.values())))

    6.以下不能创建集合的语句是(    C  )。

    A.s1=set()            B.s2=set(“abcd”)

    C.s3={}                D.s4=frozenset((3,2,1))

    p137:s3={}创建的是字典

    7.设a=set([1,2,2,3,3,3,4,4,4,4]),则a.remove(4)的值是(    A  )。

    A.{1, 2, 3}                    B.{1, 2, 2, 3, 3, 3, 4, 4, 4}

    C.{1, 2, 2, 3, 3, 3}            D.[1, 2, 2, 3, 3, 3, 4, 4, 4]

    p137:集合是一个不重复的集合体

    1. a=set([1,2,2,3,3,3,4,4,4,4])
    2. print(a)
    3. a.remove(4)
    4. print(a)

    8.下列语句执行后的结果是(    D   )。

    1. fruits={'apple':3,'banana':4,'pear':5}
    2. fruits['banana']=7
    3. print(sum(fruits.values()))

    A.7                B.19            C.12            D.15

    和第五题一样

    9.下列语句执行后的结果是(    C   )。p136

    1. d1={1:'food'}
    2. d2={1:'食品',2:'饮料'}
    3. d1.update(d2)
    4. print(d1[1])

    A.1                    B.2          C.食品          D.饮料


    d2.update(d1)

    将字典d1的“关键字:值”对添加到字典d2中。d1合并到d2,d1不变,d2变化。若d2的关键字与d1的关键字相同,d2覆盖d1相同的部分。

    1. d1={'a':1,"b":2,"c":3}
    2. d2=dict([['a',2],['d',4]])
    3. print(d1)
    4. print(d2)
    5. d1.update((d2))
    6. print(d1)
    7. print(d2)


    10.下列Python程序的运行结果是(   B   )。

    1. s1=set([1,2,2,3,3,3,4])
    2. s2={1,2,5,6,4}
    3. print(s1&s2-s1.intersection(s2))

    A.{1, 2, 4}                   B.set()

    C.[1,2,2,3,3,3,4]            D.{1,2,5,6,4}

    s1&s2的意思是求s1与s2的交集

    s1.intersection(s2)的意思也是求s1与s2的交集

    二、填空题

    1.在Python中,字典和集合都使用 大括号 作为定界符。字典的每个元素由两部分组成,即  关键字 ,其中  关键字 不允许重复。

    关键字只能是不可变类型,比如字符串,数字,元组,但不能是列表

    1. map={1:'a',"b":2,(1,2):'k',"f":[1,2]}
    2. print(map)

     

     

    1. map={[1,2]:"a"}
    2. print(map)

     

     

    2.集合是一个无序、 不重复的数据集,它包括  可变集合 不可变集合 两种类型,前者可以通过大括号或  set() 函数创建,后者需要通过  frozenset() 函数创建。

    可变集合的创建:

    1. s1={}
    2. print(type(s1))
    3. print("-------------------")
    4. s2={1,1,2,3,4,4,5,7}
    5. print(s2)
    6. print(type(s2))
    7. print("-------------------")
    8. s3=set("abcdef")#字符串,列表,元组
    9. s4=set([1,"a","f",5,6])
    10. s5=set((6,"5","u",6,6))
    11. print(s3)
    12. print(s4)
    13. print(s5)

    不可变集合的创建:

    1. s1={1,2,3,3,4,7}
    2. print(type(s1))
    3. print(s1)
    4. print("-----------")
    5. s2=frozenset(s1)
    6. print(type(s2))
    7. print(s2)

     

    3.下列语句执行后,di['fruit'][1]的值是    banana    。

    1. di={'fruit':['apple','banana','orange']}
    2. di['fruit'].append('watermelon')
    3. print(di['fruit'][1])
    4. #print(di)

    4.语句print(len({}))的执行结果是     0 

    5.设a=set([1,2,2,3,3,3,4,4,4,4]),则sum(a)的值是   10     。

    集合中的元素是不重复的,所以集合a={1,2,3,4}

    6.{1,2,3,4} & {3,4,5}的值是  {3, 4},{1,2,3,4} | {3,4,5}的值是   {1, 2, 3, 4, 5},{1,2,3,4} - {3,4,5}的值是  {1, 2}  。

    7.设有s1={1,2,3},s2={2,3,5},则s1.update(s2)执行后,s1的值为  {1, 2, 3, 5},s1.intersection(s2)的执行结果为  {2, 3} ,s1.difference(s2)的执行结果为 {1}    。

    p141

    s.update(s1,s2,s3...)

    用集合s1,s2....中的成员修改集合s,即这几个集合的并集

    1. s1={1,2,3}
    2. s2={2,3,5}
    3. print(s1.update(s2))
    4. print(s1)

    s.interection(s1,s2....) 

    和update函数意思差不多,这个是求交集

    1. s1={1,2,3}
    2. s2={2,3,5}
    3. print(s1.intersection(s2))
    4. print(s1)

    8.下列程序的运行结果是   2    。
     

    1. d={1:'x',2:'y',3:'z'}
    2. del d[1]
    3. del d[2]
    4. d[1]='A'
    5. print(len(d))

     

    9.下面程序的运行结果是   6     。 

    1. list1={}
    2. list1[1]=1
    3. list1['1']=3
    4. list1[1]+=2
    5. sum=0
    6. for k in list1:
    7. sum+=list1[k]
    8. print(sum)

    10.下面程序的运行结果是     9   。 

    1. s=set()
    2. for i in range(1,10):
    3. s.add(i)
    4. print(len(s))

    三、问答题

    1.什么是空字典和空集合?如何创建?

    在Python中,空字典和空集合都是用大括号括起来的。

    1. dict1={} #在创建空字典时,可以直接用大括号
    2. dict2=dict() #也可以用dict()函数
    3. print(type(dict1))
    4. print(type(dict2))
    5. set1={} #创建空集合时。不能只用一个大括号
    6. set2=set() #可以用set()函数
    7. print(type(set1))
    8. print(type(set2))
    9. print(dict1)
    10. print(set1)

     2.设有列表a=['number','name','score'],b=['21001','denmer',90],写一个语句将这两个列表的内容转换为字典,且以列表a中的元素为关键字,以列表b中的元素为值。

    1. a=['number','name','score']
    2. b=['21001','denmer',90]
    3. dict1=dict(zip(a,b))
    4. print(dict1)

    或者

    1. a=['number','name','score']
    2. b=['21001','denmer',90]
    3. map={}
    4. for i in range(0,min(len(a),len(b))):
    5. map[a[i]]=b[i]
    6. print(map)

     

    3.字典的遍历有哪些方法?

    (1)遍历字典的关键字
    d. keys :返回一个包含字典所有关键字的列表,所以对字典关键字的遍历转换为对列表的遍历。

    (2)遍历字典的值
    d. values(:返回一个包含字典所有值的列表,所以对字典值的遍历转换为对列表的遍历。

    (3)遍历字典的元素
    d.items():返回一个包含所有(关键字,值)元组的列表,所以对字典元素的遍历转换为对列表的遍历。

    1. a={'number':6,'name':"sa",'score':99}
    2. print(a)
    3. for i in a.keys():
    4. print(i)
    5. for i in a.values():
    6. print(i)
    7. for i in a.items():
    8. print(i)

    4.集合有哪两种类型?分别如何创建?

    集合包含两种类型:可变集合(set)和不可变集合(frozenset)。

    1. set1=set((1,2,3))
    2. print(type(set1))
    3. set2=frozenset((1,2,3,4))
    4. print(type(set2))

     5.Python支持的集合运算有哪些?集合的比较运算有哪些?集合对象的方法有哪些?p138-p142

    6.分别写出下列两个程序的输出结果,输出结果为何不同?
    程序一:

    1. d1={'a':1,'b':2}
    2. d2=d1
    3. d1['a']=6
    4. sum=d1['a']+d2['a']
    5. print(sum)

    程序二:

    1. d1={'a':1,'b':2}
    2. d2=dict(d1)
    3. d1['a']=6
    4. sum=d1['a']+d2['a']
    5. print(sum)

  • 相关阅读:
    【JavaScript】事件操作及其本质
    GO 语言的并发模式你了解多少?
    AD9361手册解读
    el-checkbox 对勾颜色调整
    原生对象、内置对象、宿主对象的区别
    18.镜像的导入和导出
    笔试强训Day2
    响应体和状态码
    Windows系统下设置Python环境的pip镜像
    【机械】二维钢桁架分析与设计附matlab代码
  • 原文地址:https://blog.csdn.net/JYHZZ/article/details/127194855