首页 > 其他分享 >第四章 4 数据类型-字典 练习题

第四章 4 数据类型-字典 练习题

时间:2022-08-21 14:55:40浏览次数:78  
标签:练习题 count None sum 数据类型 print age 字典

第四章 4 数据类型-字典  练习题

基础知识

1 字典中多个元素之间使用____________分隔开,每个元素的“键”
与“值”之间使用________分隔开
逗号,冒号

2 字典对象的___________方法可以获取指定“键”对应的“值”
,并且可以在指定“键”不存在的时候返回指定值,如果不指定则返回 None
get()

3 字典对象的_____________方法返回字典中的“键-值对”列表
items()

4 字典对象的____________方法返回字典的“键”列表
keys()

5 字典对象的______________方法返回字典的“值”列表
values()

6 已 知 x = {1:2} , 那 么 执 行 语 句 x[2] = 3 之 后 , x 的 值 为

{1: 2, 2: 3}

7 已 知 x = {‘a’:‘b’,‘c’:‘d’} , 那 么 表 达 式 ‘a’ in x 的 值 为

True

8 已 知 x = {‘a’:‘b’,‘c’:‘d’} , 那 么 表 达 式 ‘b’ in x 的 值 为

False

9 已知 x = {‘a’:‘b’,‘c’:‘d’},那么表达式 ‘b’ in x.values() 的值为

True

10 已知 x = {1:2, 2:3},那么表达式 x.get(3, 4) 的值为____
4

11 已知 x = {1:2, 2:3},那么表达式 x.get(2, 4) 的值为______
3

12 表 达 式 dict(zip([1, 2], [3, 4])) 的 值 为
{1:3,2:4}


13 已知 x = {1:1},那么执行语句 x[2] = 2 之后,len(x)的值为
2


14 已知 x = {1:1, 2:2},那么执行语句 x[2] = 4 之后,len(x)的值为
2


15 已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x) 的值为___________
6

16 已知 x = {1:2, 2:3, 3:4},那么表达式 sum(x.values()) 的值为
9

17 已知字典 x = {i:str(i+3) for i in range(3)},那么表达式 sum(x)
的值为______
3

18 已 知 字 典 x = {i:str(i+3) for i in range(3)} , 那 么 表 达
式 ’’.join(x.values()) 的值为____________
'345'

19 已 知 字 典 x = {i:str(i+3) for i in range(3)} , 那 么 表 达 式
sum(item[0] for item in x.items()) 的值为___________
3

20 已 知 字 典 x = {i:str(i+3) for i in range(3)} , 那 么 表 达
式 ’’.join([item[1] for item in x.items()]) 的值为_____________
345

[进阶拓展]
1 现有字典 dict={‘a’:24,‘g’:52,‘i’:12,‘k’:33}
请按字典中的 value值进行排序?
dict1 = {'y': 24, 'g': 52, 'i': 12, 'k': 33}
dict2 = dict(sorted(dict1.items(), key=lambda x: x[1],reverse= True))

print(dict2)
print(dict1)

2 说一下字典和 json 的区别?
抄答案:....
字典是一种数据结构,json 是一种数据的表现形式,字典的 key 值只要是能 hash 的就行,
json 的必须是字符串

3 存入字典里的数据有没有先后排序?
存入的数据不会自动排序,可以使用 sort 函数对字典进行排序。
dict1 = {'y': 24, 'g': 52, 'i': 12, 'k': 33}
dict2 = dict(sorted(dict1.items(), key=lambda x: x[1],reverse= True))
dict3 = dict(sorted(dict1.items(), key=lambda a:a[1],reverse = True))
print(dict2)
print(dict3)

5 现有字典 d={‘a’:24,’g’:52,’l’:12,’k’:33}请按字 典中的 value
值进行排序?
d = {'a': 24, 'g': 52, 'l': 12, 'k': 33}
d1=dict(sorted(d.items(), key = lambda x :x[1], reverse=True))
print(d1)


6 描述下 dict 的 item()方法与 iteritems()的不同
字典的 items 方法作用:是可以将字典中的所有项,以列表方式返回。因为字典是无序的,
所以用 items 方法返回字典的所有项,也是没有顺序的。
字典的 iteritems ,python 3.10没有这个方法,已经废除了.


7 求结果
v = dict.fromkeys(['k1','k2'],[])
v['k1'].append(666)
print(v) #{'k1': [666], 'k2': [666]}
v['k1'] = 777
print(v)#{'k1': 777, 'k2': [666]}



8 假设有列表 a = [‘name’,‘age’,‘sex’]和 b = [‘Dong’, 38,‘Male’],
请使用一个语句将这两个列表的内容转换为字典,并且以列表 a 中的
元素为“键”,以列表 b 中的元素为“值”,这个语句可以写为

a = ['name', 'age', 'sex']
b = ['dong', 38, 'male']
dic = {}
dic = dict(zip(a, b))
print(dic)




[面试真题]
1 假定有两个字典 a 和 b,如下:
a = {'eyes': 8, 'the': 5, 'look': 4, 'into': 3, 'my': 3, 'around': 2, "you're": 1, "do
n't": 1, 'under': 1, 'not': 1}
b = {'eyes': 1, 'looking': 1, 'are': 1, 'in': 1, 'not': 1, 'you': 1, 'my': 1, 'why': 1}
请写一个函数,统计两个字典中每个 key 的加和值。输出如下:

{'eyes': 9, 'the': 5, 'look': 4, 'into': 3, 'not': 2, 'around': 2, "you're": 1, "don't":
1, 'in': 1, 'why': 1,
'looking': 1, 'are': 1, 'under': 1, 'you': 1}

c=dict(a.items())
print(c)

for i in b:
if i not in c:
c.update({i: b[i]})
else:
c[i] += 1
print(c)


2 请使用 Python 语言实现:你有一个统计姓名年龄的二维 list
age_list,格式如下 [[ “姓名”,“年龄” ]…..],如果两行的姓名和年
龄均相同,视为相同的人,其他均视为不同的人。
(1)请统计所有人的平均年龄
age_list = [['张三', 25], ['李四', 26],
['王五', 27], ['马六', 28],
['赵八', None], ['马六', 28],
['王五', 27], ['刘七', None],
['王五', 27], ['马六', 20],
['王五', 27], ['刘七', None],
]

temp_lst2 = [] # 建立一个空表
for i in age_list: # 将非重复排除后,加入空表
if i not in temp_lst2:
temp_lst2.append(list(i))

count = 0 # 开始计算非None人员的平均年龄
sum_age = 0
for i in temp_lst2:
if i[1] is not None:
count += 1
sum_age += i[1]
pingjun_age = int(sum_age / count)
print(f'非None人员的平均年龄是{pingjun_age}')

count = 0 # 开始计算包含None人员的平均年龄
sum_age = 0
for i in temp_lst2:
if i[1] is not None:
count += 1
sum_age += i[1]
if i[1] is None:
count += 1
sum_age += int(pingjun_age * 1.2)
pingjun_age = int(sum_age / count)
print(f'包含None人员的平均年龄是{pingjun_age}')
print(temp_lst2)


(2)如果年龄字段有一部分值缺失,年龄为 None ,这些人的年龄可认为比其他可统
计部分的年龄高 20%,请统计所有人的平均年龄。
age_list = [['张三', 25], ['李四', 26],
['王五', 27], ['马六', 28],
['赵八', None], ['马六', 28],
['王五', 27], ['刘七', None],
['王五', 27], ['马六', 20],
['王五', 27], ['刘七', None],
]

temp_lst2 = [] # 建立一个空表
for i in age_list: # 将非重复排除后,加入空表
if i not in temp_lst2:
temp_lst2.append(list(i))

count = 0 # 开始计算非None人员的平均年龄
sum_age = 0
for i in temp_lst2:
if i[1] is not None:
count += 1
sum_age += i[1]
pingjun_age = int(sum_age / count)
print(f'非None人员的平均年龄是{pingjun_age}')

count = 0 # 开始计算包含None人员的平均年龄
sum_age = 0
for i in temp_lst2:
if i[1] is not None:
count += 1
sum_age += i[1]
if i[1] is None:
count += 1
sum_age += int(pingjun_age * 1.2)
pingjun_age = int(sum_age / count)
print(f'包含None人员的平均年龄是{pingjun_age}')
print(temp_lst2)



3 以下不能创建一个字典的语句是()
• A:dict1 ={}
• B:dict2 = { 3∶5}
• C:dict3 ={[1,2,3]:“uestc”}
• D:dict4 = {(1,2,3): “uestc”}
c
数字\字符串\元组可以做key, list不行,字典更不行


4 给定字典 d,以下选项中对 x in d 描述正确的是()
• A:x 是一个二元元组,判断 x 是否是字典 d 中的键值对
• B:判断 x 是否是字典 d 中的键
• C:判断 x 是否是在字典 d 中以键或值方式存在
• D:判断 x 是否是字典 d 中的值

B
x in d ,是只能判断字典中的键的


5 如何合并两个字典?
dict1 = {'a': 1, 'c': 3}
dict2 = {'b': 2, 'c': 33, 'd': 4}

# 方法1 方法中规中矩,就是有点啰嗦.
dict3 = dict(sorted(list(dict1.items()) + list(dict2.items())))
print(dict3)

# 方法2 分别解压两个字典的键值对,强行合并,如有重复的键,则失败.
dict3 = dict(**dict1, **dict2)
print(dict3)

# 方法3 以第1个字典为基础,如果有重复的键,更新其值,无则添加
dict3 = dict1.copy()
dict3.update(dict2)
print(dict3)

标签:练习题,count,None,sum,数据类型,print,age,字典
From: https://www.cnblogs.com/leeyong49/p/16610002.html

相关文章

  • tire字典树
    维护一个字符串集合,支持两种操作:Ix向集合中插入一个字符串x;Qx询问一个字符串在集合中出现了多少次。共有N个操作,输入的字符串总长度不超过105,字符串仅包含......
  • 数据类型_列表
    一、列表数据类型“列表”是一个值,它包含多个字构成的序列。1spam=["hello",3.14159,True,"elephant"]2[]变量spam只被赋予值:列表值,但列表值本身包含多个值。[]......
  • 字典排序
    importoperatordefdeal_dict_sort():x=[{'name':'Homer','age':39},{'name':'Bart','age':10}]lx=sorted(x,key=operator.itemgetter('age'),......
  • C语言指针与函数相关编程实例练习题
    指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。本......
  • C++数据类型
    整型C++标准short:>=2字节int:>=shortlong:>=4字节,>=intlonglong:>=8字节,>=longlinux系统short:2字节int:4字节long:4字节longlong:8字节int被设置为计算机......
  • 字典(dict)
    4.7字典(dict)字典是Python中一种非常重要的数据类型。字典和之前的列表、元组不同,里面的元素使用键-值对进行存储。通常字典中元素的键由字符串或数字等可哈希数据类型......
  • python 中 判断列表、元组、字符串、字典、集合为空的方法
     001、>>>test1=[]>>>test1[]>>>ifnottest1:##判断列表为空...print("noelement")...noelement 002、>>>test......
  • python数据类型---字典dict
    python数据类型---字典dict1.基本认识字典是Python里一种常用的数据类型,键值对,keyvalue对,它用于存放具有映射关系的数据。字典中的数据是无顺序的。。。。。。d={key......
  • Python数据类型
    在Python3中,有6种标准的数据类型:Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典),见表2-2。  Python3中支持3种不同的数值类型,包括int(整型......
  • Python的数据类型-可变类型和不可变类型
    Python数据类型-可变类型和不可变类型的区别python数据类型有6类:不可变数据类型:数字、字符串、元组可变数据类型:列表、集合、字典可变数据类型和不可变数据类型的区别......