DAY005-练习题

dict

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。

和list比较,dict有以下几个特点:

  1. 查找和插入的速度极快,不会随着key的增加而变慢;
  2. 需要占用大量的内存,内存浪费多。

而list相反:

  1. 查找和插入的时间随着元素的增加而增加;
  2. 占用空间小,浪费内存很少。

所以,dict是用空间来换取时间的一种方法。

dict可以用在需要高速查找的很多地方,在Python代码中几乎无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象

1、字典基本操作

字典内容如下:

dic = {
    'python': 95,
    'java': 99,
    'c': 100
    }

用程序解答下面的题目

  • 字典的长度是多少
dic = { ‘python’: 95, ‘java’: 99,‘c’: 100}
print ( len (dic))
  • 请修改’java’ 这个key对应的value值为98
dic['java']=98
  • 删除 c 这个key
del dic['c']
print(dic)
  • 增加一个key-value对,key值为 php, value是90
dic['php'] = 90
print(dic)
  • 获取所有的key值,存储在列表里

  • 获取所有的value值,存储在列表里

list_key = list(dic.keys())
print(listkey)
list_value = list(dic.values())
print(listvalue)
  • 判断 javascript 是否在字典中
if 'javascript' in dic:
    print('javascript 存在于dic')
else:
    print('javascript 不存在于dic')
  • 获得字典里所有value 的和
  • 获取字典里最大的value
  • 获取字典里最小的value
list_value = list(dic.values())
print(sum(list_value))
print(max(list_value))
print(min(list_value))
  • 字典 dic1 = {‘php’: 97}, 将dic1的数据更新到dic中
dic_new = {'php': 97}
dic.update(dic_new)
print(dic)
2、字典中的value

有一个字典,保存的是学生各个编程语言的成绩,内容如下

data = {
        'python': {'上学期': '90', '下学期': '95'},
        'c++': ['95', '96', '97'],
        'java': [{'月考':'90', '期中考试': '94', '期末考试': '98'}]
        }

各门课程的考试成绩存储方式并不相同,有的用字典,有的用列表,但是分数都是字符串类型,请实现函数transfer_score(score_dict),将分数修改成int类型

def transfer_score(data):
    for key in data["python"].keys():
        data["python"][key] = int(data["python"][key])
    for x in range(len(data['c++'])):
        data['c++'][x]=int(data['c++'][x])
    for y in data["java"][0].keys():
        data["java"][0][y] = int(data["java"][0][y])
transfer_score(data)
print(data)

set

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

  • 列表[‘A’, ‘B’, ‘A’, ‘B’]去重。

    a=['A','B','A','B']
    print(set(a))
    
  • 求两个集合{6, 7, 8},{7, 8, 9}中不重复的元素(差集指的是两个集合交集外的部分)

    set_1 = {6, 7, 8}
    set_2 = {7, 8, 9}
    set_1.difference(set_2)
    
  • 求{‘A’, ‘B’, ‘C’}中元素在 {‘B’, ‘C’, ‘D’}中出现的次数。

    set1 = {'A', 'B', 'C'}
    set2 = {'B', 'C', 'D'}
    print(len(set1 & set2))
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值