当前位置:文档之家› 第6章 字典和集合习题(含答案及解析)

第6章 字典和集合习题(含答案及解析)

第6章  字典和集合习题(含答案及解析)
第6章  字典和集合习题(含答案及解析)

第6章字典和集合习题

一、选择题。

1.以下选项中,不是建立字典的方式是( )

A)d = {[1,2]:1, [3,4]:3}

B)d = {(1,2):1, (3,4):3}

C)d = {'张三':1, '李四':2}

D)d = {1:[1,2], 3:[3,4]}

正确答案: A

解析:字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

2.以下表达式,正确定义了一个集合数据对象的是:( )

A) x = { 200, ’flg’, 20.3}

B) x = ( 200, ’flg’, 20.3)

C) x = [ 200, ’flg’, 20.3 ]

D) x = {‘flg’ : 20.3}

正确答案: A

解析:集合(set)是一个无序的不重复元素序列。元素之间用逗号隔开,序列用大括号 { } 括起来。

3.给出如下代码:

DictColor = {“seashell”:“海贝色”,“gold”:“金色”,“pink”:“粉红色”,“brown”:“棕色”,“purple”:“紫色”,“tomato”:“西红柿色”} 以下选项中能输出“海贝色”的是( )

A)print(DictColor.keys())

B)print(DictColor[“海贝色”])

C)print(DictColor.values())

D)print(DictColor[“seashell”])

正确答案: D

解析:可使用查找操作符([ ])进行访问字典,即依次指定字典名和放在方括号内的键进行访问。

4.下面代码的输出结果是( )

d ={"大海":"蓝色", "天空":"灰色","大地":"黑色"}

print(d["大地"],d.get("大地","黄色"))

A)黑的灰色

B)黑色黑色

C)黑色蓝色

D)黑色黄色

正确答案: B

解析:访问字典有两种方式,一是使用查找操作符([ ])进行访问,即依次指定字典名和放在方括号内的键进行访问;二是使用函数get(key, default=None)获取指定键的值,参数default 用于指定当要查询的键不存在时,此方法返回的默认值。此题,键“大地”对应的值为“黑色”,故返回B。

5.字典 d={'Name': 'Kate', 'No': '1001', 'Age': '20'},表达式len(d)的值为( )

A)12

B)9

C)6

D)3

正确答案: D

解析:len(dict)函数返回dict字典的元素个数。

6.以下关于组合数据类型的描述,错误的是:( )

A)集合类型是一种具体的数据类型

B)序列类似和映射类型都是一类数据类型的总称

C)python 的集合类型跟数学中的集合概念一致,都是多个数据项的无序组合

D)字典类型的键可以用的数据类型包括字符串,元组,以及列表

正确答案: D

解析:字典的值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。列表是可变数据类型,不可做字典的键。

7.以下关于字典类型的描述,正确的是:( )

A)字典类型可迭代,即字典的值还可以是字典类型的对象

B)表达式 for x in d: 中,假设d是字典,则x是字典中的键值对

C)字典类型的键可以是列表和其他数据类型

D)字典类型的值可以是任意数据类型的对象

正确答案: D

解析:字典本身的可迭代只针对键,列表是可变数据类型,不可做字典的键,字典的值可以取任何数据类型。

8.以下程序的输出结果是:( )

d = {"zhang":"China", "Jone":"America", "Natan":"Japan"}

print(max(d),min(d))

A)Japan America

B)zhang:China Jone:America

C)China America

D)zhang Jone

正确答案: D

解析:max(dict) 返回字典的键的最大值,min(dict) 返回字典的键的最小值。字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,以此类推,大写字母和小写字母的ASCII不同。大写字母的ASCII比小写字母的ASCII小。

9.以下关于字典和集合的描述,错误的是:( )

A)可以用大括号创建字典,用中括号增加新元素

B)嵌套的字典数据类型可以用来表达高维数据

C)字典的 pop 函数可以返回一个键对应的值,并删除该键值对

D)空字典和空集合都可以用大括号来创建

正确答案: D

解析:如果要创建一个空集合,只能使用函数set()实现。如果使用花括号{}创建一个空集合,Python 解释器会将其视为一个空字典。

10.以下程序的输出结果是:( )

dict = {'Name': 'baby', 'Age': 7}

print(dict.items())

A)[('Age', 7), ('Name', 'baby')]

B)('Age', 7), ('Name', 'baby')

C)'Age':7, 'Name': 'baby'

D)dict_items([('Age', 7), ('Name', 'baby')])

正确答案: D

解析:dict.items()返回一个列表,列表中每一个元素是由字典中的键和值组成的元组。

11.以下关于字典类型的描述,错误的是:( )

A)字典类型是一种无序的对象集合,通过键来存取

B)字典类型可以在原来的变量上增加或缩短

C)字典类型可以包含列表和其他数据类型,支持嵌套的字典

D)字典类型中的数据可以进行分片和合并操作

正确答案: D

解析:由于字典是无序的,因此没有索引,也不能使用分片操作符进行操作。

12.以下程序的输出结果是:( )

d = {"zhang":"China", "Jone":"America", "Natan":"Japan"}

for k in d:

print(k, end="")

A)ChinaAmericaJapan

B)zhang:China Jone:America Natan:Japan

C)“zhang””Jone””Natan”

D)zhangJoneNatan

正确答案: D

解析:遍历字典时,默认遍历所有的键,for k in d 功能与for k in d.keys()相同。

13.以下程序的输出结果是:( )

Da = {"北美洲":"北极兔","南美洲":"托哥巨嘴鸟","亚洲":"大熊猫","非洲":"单峰驼","南极洲":"帝企鹅"}

Da["非洲"] = "大猩猩"

print(Da)

A)('北美洲': '北极兔', '南美洲': '托哥巨嘴鸟', '亚洲': '大熊猫', '非洲': '大猩猩', '南极洲': '帝企鹅')

B)['北美洲': '北极兔', '南美洲': '托哥巨嘴鸟', '亚洲': '大熊猫', '非洲': '大猩猩', '南极洲': '帝企鹅']

C){"北美洲":"北极兔","南美洲":"托哥巨嘴鸟","亚洲":"大熊猫","非洲":"单峰驼","南极洲":"帝企鹅"}

D){'北美洲': '北极兔', '南美洲': '托哥巨嘴鸟', '亚洲': '大熊猫', '非洲': '大猩猩', '南极洲': '帝企鹅'}

正确答案: D

解析:dict[key] = value,如果key在字典dict中不存在,则直接将键值对添加到字典中;如果key已存在,则value覆盖原来字典中key对应的值。

14.以下关于字典操作的描述,错误的是:( )

A)del 用于删除字典或者元素

B)clear 用于清空字典中的数据

C)len 方法可以计算字典中键值对的个数

D)keys 方法可以获取字典的值列表

正确答案: D

解析:方法keys()获取字典中所有键的列表。

15.以下关于字典的描述,错误的是:( )

A)字典中元素以键信息为索引访问

B)字典长度是可变的

C)字典是键值对的集合

D)字典中的键可以对应多个值信息

正确答案: D

解析:字典中,一个键只对应一个值信息。不支持同一个键出现多次,否则,只会保留最后一个键值对。

16.给出如下代码

MonthandFlower={"1月":"梅花","2月":"杏花","3月":"桃花","4月":"牡丹花","5月":"石榴花","6月":"莲花","7月":"玉簪花","8月":"桂花","9月":"菊花","10月":"芙蓉花","11月":"山茶花","12月":"水仙花"}

n = input("请输入1—12的月份:")

print(n + "月份之代表花:" + MonthandFlower.get(str(n)+"月"))

以下选项中描述正确的是( )

A)代码实现了获取一个整数(1—12)来表示月份,输出该月份对应的代表花名B)MonthandFlower是列表类型变量

C)MonthandFlower是一个元组

D)MonthandFlower是集合类型变量

正确答案: A

解析:MonthandFlower是一个字典。

二、程序分析题。

1.下面程序的执行结果是______________。

ss = list(set("jzzszyj"))

ss.sort()

print(ss)

答案: ['j', 's', 'y', 'z']

解析:函数set() 将字符串去重,转换成集合,list(set())将集合转换为列表,sort()函数用于对列表进行正序排序,是对原来的列表进行的操作,不会产生一个新列表。

2.下面程序的执行结果是______________。

ss = list(set("htslbht"))

s = sorted(ss)

for i in s:

print(i,end = '')

答案:bhlst

解析:sorted(),将排序的结果放到一个有序的新列表中,该函数对原数据不会产生影响。

3.下面程序的执行结果是______________。

ls =list({'shandong':200, 'hebei':300, 'beijing':400})

print(ls)

答案:['shandong', 'hebei', 'beijing']

解析:list(dict),将字典的键转换为列表。

三.编程题。

1.编写代码完成如下功能:

(1)建立字典 d,包含内容是:"数学":101, "语文":202, "英语":203, "物理":204, "生物":206。

(2)向字典中添加键值对"化学":205。

(3)修改"数学"对应的值为 201。

(4)删除"生物"对应的键值对。

(5)按顺序打印字典 d 全部信息,参考格式如下(注意,其中冒号为英文冒号,逐行打印):

201:数学

202:语文

203:英语

204:物理

205:化学

答案:

d = {"数学":101, "语文":202, "英语":203, "物理":204, "生物":206}

d["化学"] = 205

d["数学"] = 201

del d["生物"]

for key in d:

print("{}:{}".format(d[key], key))

2.已知有一个包含一些同学成绩的字典,计算成绩的最高分、最低分、平均分,并查找所有最高分同学。字典示例:

scores = {"Zhang San": 45, "Li Si": 78, "Wang Wu": 40}

答案:

scores = {"Zhang San": 45, "Li Si": 78, "Wang Wu": 40,"Zhou Liu": 96,"Zhao Qi": 65, "Sun Ba": 99,"Zheng Jiu": 78, "Wu Shi": 99,"Dong Shiyi": 60} highest = max(scores.values())

lowest = min(scores.values())

average = sum(scores.values())*1.0/len(scores)

print(highest, lowest, average)

highestPerson = [name for name, score in scores.items() if score == highest]

print(highestPerson)

3.定义一个含有三个元素的字典,分别用三种方式删除其中的一个元素,然后再输出该字典。

参考答案:

scores = {"Zhang San": 45, "Li Si": 78, "Wang Wu": 40}

del(scores['Zhang San'])

scores.pop('Li Si')

del scores['Wang Wu']

print(scores)

4.定义一个含有三个元素的可变集合,分别用三种方式删除其中的一个元素,然后再输出该集合。

参考答案:

scores = {"Zhang San", "Li Si", "Wang Wu"}

scores.remove("Zhang San")

scores.pop()

scores.discard("Wang Wu")

print(scores)

相关主题
文本预览
相关文档 最新文档