Python语言程序设计 习题7

本文深入探讨了Python中字典和集合的基本概念、创建方式及常用操作,包括选择题和填空题形式的知识点检验,帮助读者巩固理解。

一、选择题

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

A.<class 'tuple'>                 B.<class 'dict'>

C.<class 'set'>                   D.<class  '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]))

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

print(dict1)
print(dict2)
print(dict4)

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


dict()函数的使用:p132 

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

d=dict()
print(d)

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

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

可以修改为:

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

print(d1)
print(d2)

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

d=dict(a=2,b=3)
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

D={'A':10,'B':20,'C':30,'D':40}

print(D.values())
print(list(D.values()))

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:集合是一个不重复的集合体

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

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

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

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

和第五题一样

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

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

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


d2.update(d1)

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

d1={'a':1,"b":2,"c":3}
d2=dict([['a',2],['d',4]])

print(d1)
print(d2)

d1.update((d2))
print(d1)
print(d2)


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

s1=set([1,2,2,3,3,3,4])
s2={1,2,5,6,4}
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中,字典和集合都使用 大括号 作为定界符。字典的每个元素由两部分组成,即  关键字 ,其中  关键字 不允许重复。

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

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

 

 

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

 

 

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

可变集合的创建:

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

不可变集合的创建:

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

 

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

di={'fruit':['apple','banana','orange']}
di['fruit'].append('watermelon')
print(di['fruit'][1])
#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,即这几个集合的并集

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

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

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

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

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

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

 

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

list1={}
list1[1]=1
list1['1']=3
list1[1]+=2
sum=0
for k in list1:
    sum+=list1[k]
print(sum)

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

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

三、问答题

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

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

dict1={} #在创建空字典时,可以直接用大括号
dict2=dict()  #也可以用dict()函数
print(type(dict1))
print(type(dict2))

set1={}   #创建空集合时。不能只用一个大括号
set2=set()  #可以用set()函数
print(type(set1))
print(type(set2))

print(dict1)
print(set1)

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

a=['number','name','score']
b=['21001','denmer',90]
dict1=dict(zip(a,b))
print(dict1)

或者

a=['number','name','score']
b=['21001','denmer',90]
map={}

for i in range(0,min(len(a),len(b))):
    map[a[i]]=b[i]
print(map)

 

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

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

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

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

a={'number':6,'name':"sa",'score':99}
print(a)
for i in a.keys():
    print(i)
for i in a.values():
    print(i)
for i in a.items():
    print(i)

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

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

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

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

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

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

程序二:

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

随着国家大数据战略的深入实施,各行业智慧化建设急需数据分析人才和智能应用人才。智慧化简单来说是一个以机器替换人力的过程,而机器的“灵魂”是程序。Python已经成为公认的驱动大数据智能应用的主流编程语言Python程序设计的书籍已经琳琅满目,每一本书都凝聚了作者对Python的理解和对程序设计的认识,都是作者编程开发和教学经验的总结,都折射出作者的专业背景。由于大数据专业学生对程序设计的要求不是很高,但又需要具备一定的计算思维能力,熟悉用程序进行数据分析的一般流程,因此程序设计教材要言不甚深、文不甚俗,既要覆盖相关技术,又不能面面俱到,注重对问题的分析和解释,用程序表达算法。鉴于此,我们编写了本书。 本书每一章的标题都以Python开头,凸显Python在各个部分都有其独特的编程理念和方法。与其他高级编程语言如C、C++和Java等相比,Python在数据的表示、处理和可视化方面都有绝对的优势。有编程基础的学习者在学习Python时最好能忘掉以往程序设计语言的语法,彻底转变观念,以全新的姿态融入到Python的编程特点和规律之中。如变量定义、数据类型、数据结构、控制结构、类和对象、文件访问、数据分析和可视化,每一部分都有其特别之处,都值得我们重新认识,重新使用,重新熟悉。每一章开始的思维导图都是对本章技术脉络的梳理,开门见山地给学习者展示本章的知识和技术体系,以便学习者在学习过程中始终能保持思路清晰和整体把握。每一章开头的本章导读都是编者多年来程序开发与设计教学经验的提炼与升华,都是对程序设计的理解和感悟,值得学习者深入领会。每一章开头的本章要点都是要求学习者深入理解的重要知识和熟练掌握的关键技术。每一章的小结都是对本章要点的具体解释,供学习者复习查询。 本书为河北省高等教育教学改革研究与实践项目“新工科背景下警务大数据应用专业人才培养模式与教学实践研究”(编号:2018GJJG450)的阶段性成果。 下面是本书的体系结构图。 第1章Python编程初步。学习本章,要了解Python作为一种计算机程序设计脚本语言,结合了解释性、编译性和互动性的特点;了解在Linux和Windows中安装Python的方法;了解IDLE、PyCharm和Jupyter三种常用Python程序编辑环境。工欲善其事,必先利其器,通过对本章的学习,学习者可拥有一个强大的编程工具,从此开启数据分析编程之旅。 第2章Python语言基础。Python作为一门与计算机交流的编程语言,有着跟自然语言相似的特点:字、词、句、段落、篇章,以及相应的行文语法规则。学习本章,要理解程序行文的字词句,主要包括基本数据类型、常量和变量、运算符和表达式;理解程序的段落和篇章,主要包括常用内置函数、库函数和系统函数的使用;掌握程序的语法规则,主要包括常用的变量定义和标识符命名规则、语句组织成文编码规则等。这些都是程序设计的基础,学习者只有对此熟练掌握后,才能在后续的学习中得心应手。 第3章Python组合数据类型。组合数据类型是Python语言区别于其他高级编程语言的一大特色,通过组合数据类型,省去了其他语言各种复杂数据结构的设计,给编程人员带来了极大的方便,这也是Python流行于数据分析领域的原因之一。学习本章,要熟练掌握Python组合数据类型(列表、元组、字符串、字典、集合)的创建、访问和常见基本操作,以及序列解包功能。 第4章 Python控制结构。针对物质随时间由简单向复杂、由低级向高级发展的顺序,Python语言有相应的顺序结构语句;针对物质运动发展的条件性,Python语言有相应的选择结构语句;针对物质运动的波浪式前进螺旋式上升规律,Python语言有相应的循环结构语句。学习本章,要从马克思主义自然哲学视角理解Python语言在描述物质运动规律时的表达方式;掌握用Python语言描述常用算法,解决一些基本问题的方式。 第5章 Python函数与模块。有些经常用到的能实现特定功能的代码块,我们总是不希望每次用到时都重写一遍,甚至不希望复制一遍,但又想重复使用。Python里这些经常重用的代码块以函数(Function)的形式被定义,每一次复用被称为函数调用,计算机依然要执行重用的代码。学习本章,要理解函数的概念,掌握定义函数的方法,深刻理解函数调用中参数的传递(值传递、地址传递),理解变量的作用域(变量的作用范围或变量的生命周期),理解函数集合模块、包等概念,掌握模块和包的创建及使用方法。 第6章 Python面向对象程序设计。面向过程的程序设计方法难以保证程序的安全性和代码的可重用性,而面向对象的程序设计方法能够更好地提高大型程序的质量和开发效率,增强程序的安全性和提高代码的可重用性。学习本章,重在理解面向对象程序设计思想、类和对象的概念
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值