0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

python语言之字典dict简析

冬至配饺子 来源:缪斯之子 作者:肖新苗 2022-08-23 10:17 次阅读

1.基本的增删改查

def test_1():
# 增删改查
dict1 = {'a': 1, 'b': 2}
dict1['c'] = 3
assert {'a': 1, 'b': 2, 'c': 3} == dict1, 'dict 新增失败'

del dict1['b']
assert {'a': 1, 'c': 3} == dict1, 'dict 删除失败'
dict1['c'] = 4
assert {'a': 1, 'c': 4} == dict1, 'dict 修改失败'

c = dict1['c']
assert 4 == c, 'dict 查询失败'
pass

2. in和enumerate方法

def test_2():
# in, enumerate
dict1 = {'a': 1, 'b': 2}
indexs = [i for i, v in enumerate(dict1.items()) if v[0] == 'b']
assert [1] == indexs, 'dict enumerate error'

assert 'a' in dict1, 'dict in error'
pass

3.方法: setdefault,update,get,pop,popitem

def test_3():
# setdefault,update,get,pop,popitem
# setdefault 如果没有则增加,有则不变
dict1 = {'a': 1, 'b': 2}
dict1.setdefault('c', 4)
assert {'a': 1, 'b': 2, 'c': 4}, 'dict setdefault error'

dict1.setdefault('b', 1)
assert {'a': 1, 'b': 2, 'c': 4} == dict1, 'dict setdefault b error'

dict1.update({'c': 5})
assert {'a': 1, 'b': 2, 'c': 5} == dict1, 'dict update error'

c = dict1.get('c', 1)
assert 5 == c, 'dict get error'

f = dict1.get('f', 1)
assert 1 == f, 'dict get f error'

dict1.pop('c')
assert {'a': 1, 'b': 2} == dict1, 'dict pop error'

dict1.popitem()
assert {'a': 1} == dict1, 'dict popitem error'

pass

4. sort

def test_4():
# sort
dict1 = {'b': 2, 'a': 1}
dict2 = dict(sorted(dict1.items(), key=lambda kv: kv[0]))
assert {'a': 1, 'b': 2} == dict2, 'dict sorted 1 error'

dict1 = {'b': 2, 'a': 1, 'c': 1}
dict2 = dict(sorted(dict1.items(), key=lambda kv: (kv[1], kv[0])))
assert {'a': 1, 'c': 1, 'b': 2}

pass

5.浅复制和深复制

import copy

def test_5():
# 浅复制 和 深度复制
# 1.浅复制:不改变原字典
dict1 = {'a': 1, 'b': 2}
dict2 = dict1.copy()
dict2.update({'b': 1})
assert {'a': 1, 'b': 2} == dict1, 'dict copy 1 error'
assert {'a': 1, 'b': 1} == dict2, 'dict copy 1.1 error'

# 2.浅复制:改变原字典--子对象
dict1 = {'a': 1, 'b': {'c': 1}}
dict2 = dict1.copy()
dict2['b'].setdefault('d', 2)
assert {'a': 1, 'b': {'c': 1, 'd': 2}} == dict1, 'dict copy 2 error'
assert {'a': 1, 'b': {'c': 1, 'd': 2}} == dict2, 'dict copy 2.1 error'

# 3.深复制:不改变原字典
dict1 = {'a': 1, 'b': {'c': 1}}
dict2 = copy.deepcopy(dict1)
dict2['b'].setdefault('d', 2)
assert {'a': 1, 'b': {'c': 1}} == dict1, 'dict copy 3 error'
assert {'a': 1, 'b': {'c': 1, 'd': 2}} == dict2, 'dict copy 3.1 error'

pass

6.dict的各种初始化

def test_6():
# 方法:dict(p)

dict1 = {}
assert {} == dict1, 'dict new 1 error'

dict1 = dict()
assert {} == dict1, 'dict new 2 error'

dict1 = dict({'a': 1})
assert {'a': 1} == dict1, 'dict new 3 error'

dict1 = dict([('a', 1), ('b', 2)])
assert {'a': 1, 'b': 2} == dict1, 'dict new 4 error'

dict1 = dict(a=1, b=2)
assert {'a': 1, 'b': 2} == dict1, 'dict new 5 error'

params = {'a': 1, 'b': 2}
dict1 = dict(**params)
assert {'a': 1, 'b': 2} == dict1, 'dict new 6 error'
pass



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    53

    文章

    4752

    浏览量

    84060
收藏 人收藏

    评论

    相关推荐

    pytorch和python的关系是什么

    在当今的人工智能领域,Python已经成为了最受欢迎的编程语言之一。Python的易学易用、丰富的库和框架以及强大的社区支持,使其成为了数据科学、机器学习和深度学习等领域的首选语言。而
    的头像 发表于 08-01 15:27 740次阅读

    Python语言基础2

    电子发烧友网站提供《Python语言基础2.rar》资料免费下载
    发表于 07-17 17:23 1次下载

    使用Python进行自然语言处理

    在探讨使用Python进行自然语言处理(NLP)的广阔领域时,我们首先需要理解NLP的基本概念、其重要性、Python在NLP中的优势,以及如何通过Python实现一些基础的NLP任务
    的头像 发表于 07-04 14:40 265次阅读

    岩土工程监测中振弦采集仪的布设方案及实施步骤

    岩土工程监测中振弦采集仪的布设方案及实施步骤 岩土工程监测中,河北稳控科技振弦采集仪是一种常用的地下水位和土层压缩性监测工具。它通过采集振弦的振动信号来确定地下水位和土层的压缩性,为岩土
    的头像 发表于 05-06 13:25 161次阅读
    岩土工程监测中振弦采集仪的布设方案及实施步骤<b class='flag-5'>简</b><b class='flag-5'>析</b>

    四种编程语言之间的区别和联系

    编程语言是一种人与计算机之间进行交流的方式,不同的编程语言有着不同的特点和用途。本文将对四种常见的编程语言——Python、Java、C++和JavaScript进行比较,分析它们的区
    的头像 发表于 02-05 14:16 1047次阅读

    python语言特点有哪些

    Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它具有许多独特的特点,这些特点使得Python在软件开发领域变得非常流行。以下是关于Python
    的头像 发表于 11-29 14:29 824次阅读

    Python编程语言属于什么语言

    Python编程语言属于高级编程语言中的一种。它是一种通用、面向对象、解释型编程语言Python由Guido van Rossum于198
    的头像 发表于 11-22 14:31 1138次阅读

    Python减少字典对象内存大小的方法

    Python里用字典来表示结构信息是非常方便的: >>> ob ={ 'x' : 1 , 'y' : 2 , 'z' : 3 } >>> x = ob [ 'x' ] >>> ob [ 'y
    的头像 发表于 11-03 15:21 560次阅读

    Go语言Python强多少

    1.都说Go语言性能非常强大,那么到底比Python强多少? 为了比较Go语言Python语言在单线程性能上的差距,我们可以做一个简单实验
    的头像 发表于 11-02 14:05 440次阅读
    Go<b class='flag-5'>语言</b>比<b class='flag-5'>Python</b>强多少

    Python 字典组成的数组怎么进行去重

    }] test = list( set ( test ))> >>TypeError: unhashable type : 'dict' 因为使用set去重的前提是该对象为不可变对象,而字典是可变对象,因此
    的头像 发表于 11-01 10:55 399次阅读

    关于替换原生字典munch的使用全解

    字典Python 中基础的数据结构之一,字典的使用,可以说是非常的简单粗暴,但即便是这样一个与世无争的数据结构,仍然有很多人 "看不惯它" 。 也许你并不觉得,但我相信,你看了这篇文章后,一定
    的头像 发表于 10-31 14:12 338次阅读

    Addit:一个写起来令人极其舒适的字典模块

    Addit 是一个Python模块,除了提供标准的字典语法外,Addit 生成的字典的值既可以使用属性来获取,也可以使用属性进行设置。 这意味着你 不用 再写这样的字典了: body
    的头像 发表于 10-30 09:56 443次阅读

    Addict:一个写起来令人极其舒适的字典模块

    Addit 是一个Python模块,除了提供标准的字典语法外,Addit 生成的字典的值既可以使用属性来获取,也可以使用属性进行设置。 这意味着你 不用 再写这样的字典了: body
    的头像 发表于 10-21 14:24 381次阅读

    Python字典组成的数组怎么进行去重

    }] test = list( set ( test ))> >> TypeError: unhashable type : 'dict' 因为使用set去重的前提是该对象为不可变对象,而字典是可变对象
    的头像 发表于 10-17 11:26 382次阅读

    OpenHarmony应用核心技术理念与需求机遇

    一、核心技术理念 图片来源:OpenHarmony官方网站 二、需求机遇 新的万物互联智能世界代表着新规则、新赛道、新切入点、新财富机会;各WEB网站、客户端( 苹果APP、安卓APK)、微信
    发表于 09-22 16:12