返回顶部
首页 > 资讯 > 后端开发 > Python >Python映射类型中dict怎么用
  • 761
分享到

Python映射类型中dict怎么用

2023-06-29 12:06:30 761人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章给大家分享的是有关python映射类型中dict怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。映射类型 - dict字典可用多种方式来创建:使用花括号内以逗号分隔键: 值对的方式: {&ls

这篇文章给大家分享的是有关python映射类型中dict怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

映射类型 - dict

字典可用多种方式来创建:

  • 使用花括号内以逗号分隔键: 值对的方式: {‘jack’: 4098, ‘sjoerd’: 4127} or {4098:‘jack’, 4127: ‘sjoerd’}

  • 使用字典推导式: {}, {x: x ** 2 for x in range(10)}

dict_a = {key: value for key in 'Python' for value in range(2)}list_phone = [('HUAWEI', '华为'), ('MI', '小米'), ('OPPO', 'OPPO'), ('VIVO', 'VIVO')]dict_c = {key: value for key, value in list_phone}
  • 使用类型构造器: dict(), dict([(‘foo’, 100), (‘bar’, 200)]), dict(foo=100,bar=200)

字典所支持的操作:

list(d)

返回字典d 中使用的所有键的列表

len(d)

返回字典d 中的项数

d[key]

返回d 中以key 为键的项。如果映射中不存在key 则会引发KeyError。

如果字典的子类定义了方法__missing__() 并且key 不存在,则d[key] 操作将调用该方法并附带键key 作为参数。d[key] 随后将返回或引发__missing__(key) 调用所返回或引发的任何对象或异常。没有其他操作或方法会发起调用__missing__()。如果未定义__missing__(),则会引发KeyError。missing() 必须是一个方法;它不能是一个实例变量:

>>> class Counter(dict):... def __missing__(self, key):... return 0>>> c = Counter()>>> c['red']0>>> c['red'] += 1>>> c['red']1

上面的例子显示了collections.Counter 实现的部分代码。还有另一个不同的__missing__方法是由collections.defaultdict 所使用的。

d[key] = value

将d[key]设为value。

del d[key]

将d[key] 从d中移除。如果映射中不存在key 则会引发KeyError。

key in d

如果d中存在键key 则返回True,否则返回False。

iter(d)

返回以字典的键为元素的迭代器。这是iter(d.keys()) 的快捷方式。

clear()

移除字典中的所有元素。

copy()

返回原字典的浅拷贝

深copy

若你想彻底使2个dict完全独立,无论有多少层数据。那就要用python工具包里的一个工具了

import copydata = {    "name":"alex",    "age":18,    "scores":{        "语文":130,        "数学":60,        "英语":98,    }}d2 = data.copy()d3 =copy.deepcopy(data)d3["scores"]["语文"] = 149print(d3)print(data)

claSSMethod fromkeys(iterable[, value ]) fromkeys()

函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值

seq = ('Google', 'Runoob', 'Taobao')thisdict = dict.fromkeys(seq)print "新字典为 : %s" %  str(dict)thisdict = dict.fromkeys(seq, 10)print "新字典为 : %s" %  str(thisdict)"""新的字典为 : {'age': None, 'name': None, 'sex': None}新的字典为 : {'age': 10, 'name': 10, 'sex': 10}"""

get(key[, default ])

如果key 存在于字典中则返回key 的值,否则返回default。如果default 未给出则默认为None,因而此方法绝不会引发KeyError。

items()

  • 以列表返回视图对象,是一个可遍历的key/value对

  • dict.keys()dict.values()dict.items() 返回的都是视图对象( view objects),提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化

tinydict = {'Name': 'Runoob', 'Age': 7}print ("Value : %s" %  tinydict.items()) # Value : dict_items([('Age', 7), ('Name', 'Runoob')])

keys()

返回由字典键组成的一个新视图

dict.keys()dict.values() dict.items() 返回的都是视图对象( view objects),提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化

a = {"a": 3, "b": 2}print(a.keys()) # <class 'dict_keys'>

pop(key[, default ])

删除字典给定键 key 所对应的值,返回值为被删除的值。

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}element = site.pop('name')print('删除的元素为:', element)print('字典为:', site)"""删除的元素为: 菜鸟教程字典为: {'alexa': 10000, 'url': 'www.runoob.com'}"""

popitem()

  • popitem() 方法随机返回并删除字典中的最后一对键和值。

  • 如果字典已经为空,却调用了此方法,就报出KeyError异常。

  • 返回一个键值对(key,value)形式,按照 LIFO(Last In First Out后进先出法)顺序规则,即最末尾的键值对。

site= {'name': '菜鸟教程', 'alexa': 10000, 'url': 'www.runoob.com'}pop_obj=site.popitem()print(pop_obj)  print(site)

reversed(d)

返回一个逆序获取字典键的迭代器。这是reversed(d.keys()) 的快捷方式

setdefault(key[, default ])

setdefault() 方法和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。

tinydict = {'Name': 'Runoob', 'Age': 7}print ("Age 键的值为 : %s" %  tinydict.setdefault('Age', None))print ("Sex 键的值为 : %s" %  tinydict.setdefault('Sex', None))print ("新字典为:", tinydict)

update([other ])

update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里

tinydict = {'Name': 'Runoob', 'Age': 7}tinydict2 = {'Sex': 'female' }tinydict.update(tinydict2)print ("更新字典 tinydict : ", tinydict)

values()

返回一个视图对象,dict.keys()、dict.values() 和 dict.items() 返回的都是视图对象( view objects),提供了字典实体的动态视图,这就意味着字典改变,视图也会跟着变化

a = {"a": 3, "b": 2}print(a.values()) # dict_values([3, 2])

d | other

合并d 和other 中的键和值来创建一个新的字典,两者必须都是字典。当d 和other 有相同键时,other 的值优先。3.9才支持

a = {"apple": 3, "banana": 4}b = {"grape": 5, "banana": 8}print(a | b)

d |= other

  • 用other 的键和值更新字典d ,other 可以是mapping 或iterable 的键值对。当d 和other 有相同键时,other 的值优先。

  • 9 新版功能

a = {"one": 1, "two": 2, "three": 3}a |= {"three": 30, "four": 4, "five": 5}print(a)a = {"apple": 3, "banana": 4}b = {"grape": 5, "banana": 8}a |= bprint(a)"""{'one': 1, 'two': 2, 'three': 30, 'four': 4, 'five': 5}{'apple': 3, 'banana': 8, 'grape': 5}"""

感谢各位的阅读!关于“Python映射类型中dict怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Python映射类型中dict怎么用

本文链接: https://lsjlt.com/news/324787.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python映射类型中dict怎么用
    这篇文章给大家分享的是有关Python映射类型中dict怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。映射类型 - dict字典可用多种方式来创建:使用花括号内以逗号分隔键: 值对的方式: {&ls...
    99+
    2023-06-29
  • Python映射类型之dict详解
    目录映射类型—dictlist(d)len(d)d[key]d[key]=valuedeld[key]keyinditer(d)clear()copy()classmet...
    99+
    2024-04-02
  • Hibernate中有哪些映射类型
    Hibernate中有哪些映射类型,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.Hibernate内置映射类型1).Java基本类型的Hibernate映射类型Java类型...
    99+
    2023-06-17
  • TypeScript 映射类型是怎样的
    这期内容当中小编将会给大家带来有关TypeScript 映射类型是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言:TypeScript 的官方文档早已更新,但我能找到的中文文档都还停留...
    99+
    2023-06-22
  • mybatis怎么利用resultMap复杂类型list映射
    这篇文章主要介绍“mybatis怎么利用resultMap复杂类型list映射”,在日常操作中,相信很多人在mybatis怎么利用resultMap复杂类型list映射问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-20
  • Elasticsearch的删除映射类型怎么操作
    这篇文章主要讲解了“Elasticsearch的删除映射类型怎么操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Elasticsearch的删除映射类型怎么操作”吧!一 前言在elasti...
    99+
    2023-06-30
  • Go语言中的映射类型如何使用?
    Go语言中的映射类型如何使用? 在Go语言中,映射(map)是一种内置的数据结构,用于存储键值对。映射允许通过键来快速检索值,类似于其他语言中的字典或哈希表。在本文中,我们将介绍Go语...
    99+
    2024-04-02
  • 深入了解TypeScript中的映射类型
    目录1. 基本概念(1)索引访问类型(2)索引签名(3)联合类型(4)keyof 类型运算符(5)元组类型(6)条件类型2. 映射类型(1)初体验(2)概念(3)实例3. 实用程序中...
    99+
    2022-11-13
    TypeScript映射类型 TypeScript映射
  • 映射中的多种函数类型,Golang
    映射是Golang中一种强大的数据结构,它允许我们将一个值与另一个值相关联。在Golang中,我们可以使用映射来实现各种不同类型的函数。php小编柚子将在本文中介绍映射中的多种函数类型...
    99+
    2024-02-12
    golang开发
  • java高级用法之JNA中使用类型映射
    目录简介类型映射的本质TypeMapperNativeMapped总结简介 JNA中有很多种映射,library的映射,函数的映射还有函数参数和返回值的映射,libary和函数的映射...
    99+
    2024-04-02
  • MybatisPlus怎么自定义TypeHandler映射JSON类型为List
    这篇文章将为大家详细讲解有关MybatisPlus怎么自定义TypeHandler映射JSON类型为List,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。自定义TypeHandler映射JSON类型为Li...
    99+
    2023-06-28
  • UniDAC使用教程(四):数据类型映射
    下载UniDAC最新版本Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++B...
    99+
    2024-04-02
  • Python链式映射怎么使用
    本文小编为大家详细介绍“Python链式映射怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python链式映射怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。认识ChainMapPython的所提...
    99+
    2023-07-06
  • 怎么用Python VTK映射三维模型表面距离
    这篇文章主要介绍了怎么用Python VTK映射三维模型表面距离的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用Python VTK映射三维模型表面距离文章都会有所收获,下面我们一起来看...
    99+
    2023-06-30
  • mybatis 如何利用resultMap复杂类型list映射
    mybatis resultMap复杂类型list映射 映射泛型为对象 xml <resultMap id="internetDataDTO" type="com.mdm....
    99+
    2024-04-02
  • 使用通用类型参数从映射返回顶级键
    问题内容 我有以下方法,它返回 map 中的所有键。但它接受的参数必须是 map[string]string 类型。 func GetAllKeys(m map[string]stri...
    99+
    2024-02-08
  • 映射接口{}和类型结构体{}有什么区别?
    问题内容 我刚刚读到,map[Type]interface{} 指定了 Type 类型的键的映射,其值为any,即interface{}。 这不是与定义结构几乎相同吗,即 type N...
    99+
    2024-02-06
    键值对
  • 怎么解决mybatis映射和实际类型不一致的问题
    本篇内容主要讲解“怎么解决mybatis映射和实际类型不一致的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决mybatis映射和实际类型不一致的问题”吧!mybatis映射和实际类型...
    99+
    2023-06-21
  • Java的JNA类型映射注意细节及使用方法
    这篇文章主要介绍“Java的JNA类型映射注意细节及使用方法”,在日常操作中,相信很多人在Java的JNA类型映射注意细节及使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的JNA类型映射注意细...
    99+
    2023-06-30
  • java怎么从clob字段映射实体类
    要从CLOB字段映射到Java实体类,可以按照以下步骤进行操作:1. 首先,创建一个Java实体类,用于表示CLOB字段的数据。例如...
    99+
    2023-10-18
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作