测验6: 组合数据类型

目录

 一、单项选择题

二、程序设计题

1.数字不同数之和

2.人名最多数统计

 一、单项选择题

1.给定字典d,哪个选项对d.values()的描述是正确的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.返回一个列表类型,包括字典d中所有值

B.返回一个集合类型,包括字典d中所有值

C.返回一个元组类型,包括字典d中所有值

D.返回一种dict_values类型,包括字典d中所有值


D

字典存储键值对。

d.values()返回所有的值信息,是dict_values类型。

2.给定字典d,哪个选项对x in d的描述是正确的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.判断x是否是字典d中的值

B.x是一个二元元组,判断x是否是字典d中的键值对

C.判断x是否是在字典d中以键或值方式存在

D.判断x是否是字典d中的键


D

字典是存储键值对的数据结构,一个键信息只对应一个值信息。

键是值的序号,也是字典中值的索引方式。

因此,x in d 中的 x 被当作 d 中的序号进行判断,检查某个键是否存在于字典中。

3.哪个选项是下面代码的输出结果?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

d= {'a': 1, 'b': 2, 'b': '3'}
print(d['b'])

A.1

B.2

C.{'b':2}

D.3


D

创建字典时,如果相同键对应不同值,字典采用最后(最新)一个"键值对"。

4.序列s,哪个选项对s.index(x)的描述是正确的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.返回序列s中x的长度

B.返回序列s中元素x所有出现位置的序号

C.返回序列s中序号为x的元素

D.返回序列s中元素x第一次出现的序号


D

注意:s.index(x)返回第一次出现x的序号,并不返回全部序号。

序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。

序列类型有相同的索引体系,即正向递增序号和反向递减序号。

5.列表ls,哪个选项对ls.append(x)的描述是正确的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.向列表ls最前面增加一个元素x

B.只能向列表ls最后增加一个元素x

C.替换列表ls最后一个元素为x

D.向ls中增加元素,如果x是一个列表,则可以同时增加多个元素


B

ls.append(x),如果x是一个列表,则该列表作为一个元素增加的ls中。

6.S和T是两个集合,哪个选项对S^T的描述是正确的?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.S和T的交运算,包括同时在集合S和T中的元素

B.S和T的补运算,包括集合S和T中的非相同元素

C.S和T的并运算,包括在集合S和T中的所有元素

D.S和T的差运算,包括在集合S但不在T中的元素


B

7.关于Python的元组类型,以下选项错误的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.元组一旦创建就不能被修改

B.元组采用逗号和圆括号(可选)来表示

C.一个元组可以作为另一个元组的元素,可以采用多级索引获取信息

D.元组中元素必须是相同类型


D

A.元组是序列类型中比较特殊的类型,元组生成后是固定的,其中任何数据项不能替换或删除。

B.生成元组只需要使用逗号将元素隔开,在不混淆语义的情况下,圆括号可加可不加。

C.课本上有例子

D.序列类型(元组、列表)中元素都可以是不同类型。

8.关于大括号{},以下描述正确的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.直接使用{}将生成一个列表类型

B.直接使用{}将生成一个字典类型

C.直接使用{}将生成一个元组类型

D.直接使用{}将生成一个集合类型


B

集合类型和字典类型最外侧都用{}表示,不同在于,集合类型元素是普通元素,字典类型元素是键值对。

字典在程序设计中非常常用,因此,直接采用{}默认生成一个空字典。

空列表:[] / list()

空字典:{} / dict()

空元组:tuple()

空集合:set()

9.以下不是Python序列类型的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.字符串类型

B.列表类型

C.元组类型

D.数组类型


D

Python内置数据类型中没有数组类型。

序列类型:字符串(str),元组(tuple),列表(list)

        字符串可以看成是单一字符的有序组合,属于序列类型;由于字符串类型十分常用且单一字符串只表达一个含义,也被看作是基本数据类型。

        元组是包含0个或多个数据项的不可变序列类型。

        列表是一个可以修改数据项的序列类型。

10.关于Python组合数据类型,以下描述错误的是:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

A.组合数据类型能够将多个相同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序、更容易

B.序列类型是二维元素向量,元素之间存在先后关系,通过序号访问

C.组合数据类型可以分为3类:序列类型、集合类型和映射类型

D.Python的字符串、元组和列表类型都属于序列类型


B

序列类型总体上可以看成一维向量,如果其元素都是序列,则可被当作二维向量。

二、程序设计题

1.数字不同数之和

描述

获得用户输入的一个整数N,输出N中所出现不同数字的和。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。

输入输出示例

输入输出
示例 1
123123123
6

 提交代码

N = input()
ss = set(N)
s = 0
for i in ss:
    s += eval(i)
print(s)
# input()
# 无论用户输入的是什么类型的数据,它都会将输入解释为字符串

# set()
# 输入的参数可以是任何组合数据类型,返回结果是一个无重复且排序任意的集合

# 转换为集合时,集合会自动去重

2.人名最多数统计

描述

编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。

输入输出示例

输入输出
示例 1
黄蓉(仅展示输出格式,不是结果)

  提交代码

s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖 
       杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙 
       金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍 
       鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰 
       阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰 
       乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王 
       忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正 
       李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复 
       逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣 
       洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复 
       黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄 
       张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫 
       洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈 
       完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱 
       郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲 
       谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉 
       双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏 
       逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
ls = s.split()
d = {}
for i in ls:
    d[i] = d.get(i, 0) + 1
lss = list(d.items())
lss.sort(key=lambda x:x[1], reverse=True)
print(lss[0][0])
# split()
# 默认情况下,会根据空格、制表符、换行符等空白字符进行分割,分割后的单词存储在列表中

# d.get(i, 0)
# 键 i 存在则返回对应的值,不存在则返回默认值 0

# d.items()
# 返回所有键值对
# lss = list(d.items())
# 将字典转换为记录列表

 

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值