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字典基础知识了解(增删改查+根据value查找key) -> 正文阅读

[Python知识库]python字典基础知识了解(增删改查+根据value查找key)

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。dict的实现原理和日常生活查字典是一样的!

日常生活中查字典的方法有两种:

1.是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。

2.先在字典的索引表里查这个字对应的页码,然后直接翻到该页,找到这个字,这个字就相当于索引。这种key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。


用Python写一个dict如下:

Student = {'name': 'jack', 'score': 100}

字典键-值(key-value)之增删改查:

1.查找:根据key查找对应的value值,类似列表根据索引查找值,只不过字典是根据key查找

>>>Student['name']
'jack'

ps:如果字典中没有查找的key,dict就会报错(根本没这个key,那肯定会报错呀)?

一般我们会用in来判断某个key是否存在字典中:

>>>'name' in Student
True

2.增加键-值(key-value): 字典名['key']= value? ? ? ?

ps:其中key和value为自己新增的key和value,一个key只能对应一个value,如果key与之前的value相同,则新的value会代替之前的value

#添加新的key和value
>>>Student['age']=20
>>>Student
{'name': 'jack', 'score': 100, 'age': 20}

3.删除键-值(key-value):del 字典名['key']

>>>del Student['age']
>>>Student
{'name': 'jack', 'score': 100}

?4.修改键-值(key-value):直接把key的值修改成想要的值

>>>Student['name']='anna'
>>>Student
{'name': 'anna', 'score': 100}

拓展知识:根据value找key

一般来说我们是根据key寻找value的,比较简单。上面我们讲到过一个key只能对应一个value,在字典中key只能是唯一的!但是value不保证唯一性。这类似列表中的索引唯一,值不唯一。

回到正题,根据value查找key分两种情况:

  • value值唯一的情况直接构造列表list,通过value的索引取对应的key。
  • value值不唯一的情况,需要通过for遍历出所有的索引然后查出所有对应的key。

举个栗子:这里我写了一个简单的成绩单

查找代码需求是:1.查找是哪些人考了59分(value值不唯一),打印出他们的名字

Student_grade = {
    "jack":100,
    "rose":80,
    "kaer":59,
    "tom":59
}

方法:

#通过input查找需要的值
get_value = input("grade:")
#如果输入的值在字典中,就循环遍历
if get_value in Student_grade.values():
    #(遍历长度a为0-字典长度)
    for a in range(0,len(Student_grade)):
        #把字典的值放在列表中,如果列表的值中有查找的值,就打印输出列表的key
        if Student_grade.values()[a] == get_value:
            print (Student_grade.keys()[a])
#如果值不在列表中,就输出'false'
else:
    print ('false')

结果:

grade:59
tom
kaer
grade:60
false

ps:方法keys()用来遍历字典中的所有键;

方法values()遍历字典中的所有值。(这种做法提取字典中所有的值,而没有考虑是否重复。)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-01 20:33:48  更:2022-02-01 20:36:04 
 
开发: 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/16 1:18:56-

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