IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 映射类型 --- dict -> 正文阅读

[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 copy

data = {
    "name":"alex",
    "age":18,
    "scores":{
        "语文":130,
        "数学":60,
        "英语":98,
    }
}

d2 = data.copy()
d3 =copy.deepcopy(data)
d3["scores"]["语文"] = 149

print(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 的值优先。
  • 3.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 |= b
print(a)
"""
{'one': 1, 'two': 2, 'three': 30, 'four': 4, 'five': 5}
{'apple': 3, 'banana': 8, 'grape': 5}
"""
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:28:05  更:2022-03-15 22:29:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 13:55:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计