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知识库 -> python - 字典的增删改查等基础使用方式 -> 正文阅读

[Python知识库]python - 字典的增删改查等基础使用方式


1. 创建字典的多种方式

a["IPhone"] = "Apple"

b = {"吕布":"口口布", "关羽":"关习习", "刘备":"刘又田"}
c = dict(吕布="口口布", 关羽="关习习", 刘备="刘又田")
d = dict([("吕布", "口口布"), ("关羽", "关习习"), ("刘备", "刘又田")])
e = dict({"吕布":"口口布", "关羽":"关习习", "刘备":"刘又田"})       #dict()括号内其实是b后的参数
f = dict({"吕布":"口口布", "关羽":"关习习"}, 刘备="刘又田")
g = dict(zip(["吕布","关羽","刘备"], ["口口布","关习习","刘又田"]))

>>> b == c == d == e == f == g
True

2. 增 - dict.fromkeys

>>> x = dict.fromkeys("Hello", 100)         #创建所有键的值都相同的方式
>>> x
{'H': 100, 'e': 100, 'l': 100, 'o': 100}
>>> x['H'] = 70                             #可通过此方式修改,如果此处修改的键值对不在字典中,那么会在字典中新增一个键值对
>>> x
{'H': 70, 'e': 100, 'l': 100, 'o': 100}

3. 删 - pop & del & clear

//pop删除
>>> x.pop('o')                      #pop删除指定键值对
100
>>> x
{'H': 70, 'e': 100, 'l': 100}
>>> x.pop('s')                      #当删除到没有的键值对时会报错
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    x.pop('s')
KeyError: 's'
>>> x.pop('s', "没有")              #添加default参数能让报错变成添加的字符
'没有'
>>> x.popitem()                     #删除最后一个添加的键值对(修改的不算)
('l', 100)
>>> x
{'H': 70, 'e': 100}

//del删除
>>> del x['H']                      #同样删除指定键可以用del的方式
>>> x
{'e': 100}
>>> del x                           #del加字典名称,能删除整个字典
>>> x                               #删除后报错x没有被定义
Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    x
NameError: name 'x' is not defined

//clear清空字典
>>> x = dict.fromkeys("Hello", 100)
>>> x
{'H': 100, 'e': 100, 'l': 100, 'o': 100}
>>> x.clear()
>>> x
{}

4. 改 - update

>>> x = dict.fromkeys("Hello", 100)
>>> x['o'] = 50             #只能修改一个键值对
>>> x
{'H': 100, 'e': 100, 'l': 100, 'o': 50}

//update可修改多个键值对
>>> x = dict.fromkeys("Hello")
>>> x
{'H': None, 'e': None, 'l': None, 'o': None}
>>> x.update({'H':105, 'l':104})
>>> x
{'H': 105, 'e': None, 'l': 104, 'o': None}
>>> x.update(e='70', o='80')
>>> x
{'H': 105, 'e': '70', 'l': 104, 'o': '80'}

5. 查 - get & setdefault

//普通查询方式
>>> x['e']          #使用此方式查询时,如果查询到字典中没有的字符,会报错
'70'

//使用get参数,能在查询字典没有的空值时返回指定的字符
>>> x.get('A', "没有A")
'没有A'

//使用setdefault参数查询字典时,如果遇到字典中没有的,可将查询的字符插入进去
>>> x.setdefault('H', "code")       #当查询字典中有的值时,返回H键的结果,不修改H的值
105
>>> x.setdefault('C', "code")       #当查询字典中没有C的时候,直接将C键插入字典的,并将code作为对应的值
'code'
>>> x
{'H': 105, 'e': '70', 'l': 104, 'o': '80', 'C': 'code'}

//视图对象 (当字典发生变化,视图对象也会跟这变)
>>> A = x.keys()        #创建字典键的视图对象
>>> B = x.values()      #创建字典值的视图对象
>>> C = x.items()       #C中存储了A和B的键值对
>>> A
dict_keys(['H', 'e', 'l', 'o', 'C'])
>>> B
dict_values([105, '70', 104, '80', 'code'])
>>> C
dict_items([('H', 105), ('e', '70'), ('l', 104), ('o', '80'), ('C', 'code')])

>>> x.pop('C')          #当字典中删除了一个键值对,那么对应视图对象中的键值对也就消失了
'code'
>>> x
{'H': 105, 'e': '70', 'l': 104, 'o': '80'}
>>> A
dict_keys(['H', 'e', 'l', 'o'])
>>> B
dict_values([105, '70', 104, '80'])
>>> C
dict_items([('H', 105), ('e', '70'), ('l', 104), ('o', '80')])

//补充,浅拷贝
>>> d = x.copy()
>>> d
{'H': 105, 'e': '70', 'l': 104, 'o': '80'}

6. 字典也是可以转换成列表的

>>> list(x)             #默认输出字典的键
['H', 'e', 'l', 'o']
>>> list(x.keys())      #输出字典的键
['H', 'e', 'l', 'o']
>>> list(x.values())    #输出字典的值
[105, '70', 104, '80']

//迭代器
>>> a = iter(x)
>>> next(a)
'H'
>>> next(a)
'e'
>>> next(a)
'l'
>>> next(a)
'o'

//排序
>>> x
{'H': 101, 'e': 102, 'l': 103, 'o': 104}
>>> list(reversed(x.values()))
[104, 103, 102, 101]

7. 嵌套

>>> x = {"小明": {"语文":70, "数学":80, "英语":90}, "小红":{"语文":80, "数学":60, "英语":70}}
>>> x
{'小明': {'语文': 70, '数学': 80, '英语': 90}, '小红': {'语文': 80, '数学': 60, '英语': 70}}
>>> x["小明"]["数学"]
80

//也可使用下标索引
>>> x = {"小明": [70,80,90], "小红":[80,60,70]}
>>> x
{'小明': [70, 80, 90], '小红': [80, 60, 70]}
>>> x["小明"][1]
80

8. 字典推导式

>>> x = {'H':80, 'l':90, 'e':100, 'o':108}
>>> x
{'H': 80, 'l': 90, 'e': 100, 'o': 108}
>>> a = {i:h for h,i in x.items()}
>>> a
{80: 'H', 90: 'l', 100: 'e', 108: 'o'}
>>> a = {i:h for h,i in x.items() if i >= 100}
>>> a
{100: 'e', 108: 'o'}

//求出编码值
>>> a = {x:ord(x) for x in "Hello"}
>>> a
{'H': 72, 'e': 101, 'l': 108, 'o': 111}
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:49:56  更:2022-07-04 22:53:59 
 
开发: 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年11日历 -2024/11/15 12:30:38-

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