Python字典是可变类型数据,可以存储任意对象,如字符串,数字,元组,列表等。

字典的创键

字典有键key和值value组成,使用键值对链接:,字典也称为关联数组或哈希表。

dict_person = {"name": "link", "age": 18}

注意:每个键和值使用:隔开,使用逗号进行隔开,整体放在花括号里面{},键必须独一无二,而且键必须是不可变数据类型,值则不必。

获取字典值

  • 使用中括号[key]获取值
  • dict.get("key")获取值
dict_person = {"name": "link", "age": 18}

print('dict_person["name"]', dict_person["name"])
print('dict_person.get("age")', dict_person.get("age"))

注意:key不存在时,使用get("key")返回None, 而使用[]直接报错。

获取字典的长度

dict_person = {"name": "link", "age": 18}
print("dict_person字典的长度是:", len(dict_person))

注意: 字典的长度其实就是多少个key

修改字典

class_dict = {"name": "张俊", "class": "三年一班"}

# 修改为 三年二班
class_dict["class"] = "三年二班"
print(class_dict)

注意: 修改字典值得时候,如果修改的键存在则是修改键对应的值,不存在则是增加新的键,值。

删除字典

  • pop(key) 删除指定键是key的条目
  • del 删除整个字典
  • clear 清空字典
  • del dict["key"] 删除指定键是key的条目
class_dict = {"name": "张俊", "class": "三年一班", "age": 18}

# 删除键是"class"的条目
del class_dict["class"]
# 也可以使用pop, 如果删除的键不存在直接报错
# class_dict.pop('class')
print(class_dict)
# 清空字典
class_dict.clear()
print(class_dict)
# 删除整个字典
del class_dict

字典内置方法

  • dict.fromkeys() 创建新字典,以seq作为键,val作为值
dict_1 = {}
dict_2 = dict_1.fromkeys("a", 11)
print(dict_2)
  • dict.keys() 列表形式返回字典所有的key
person = {"name": "张三", "age": 18, "adress": "武当山"}

print(person.keys())
  • dict.values() 列表形式返回字典所有的values
person = {"name": "张三", "age": 18, "adress": "武当山"}
print(person.values())
  • dict.items() 返回可遍历键,值
person = {"name": "张三", "age": 18, "adress": "武当山"}

for k, v in person.items():
print(k, v)

后续会讲解数据类型的深拷贝和浅拷贝。

dict的使用的更多相关文章

  1. tuple放入dict中

    tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...

  2. redis数据结构存储Dict设计细节(redis的设计与实现笔记)

    说到redis的Dict(字典),虽说算法上跟市面上一般的Dict实现没有什么区别,但是redis的Dict有2个特殊的地方那就是它的rehash(重新散列)和它的字典节点单向链表. 以下是dict用 ...

  3. python list dict 去重的两种方式

    def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item ...

  4. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  5. python dict clear只能删除一层,不能够递归删除。

    void PyDict_Clear(PyObject *op) { dictobject *mp; dictentry *ep, *table; int table_is_malloced; Py_s ...

  6. Python中内置数据类型list,tuple,dict,set的区别和用法

    Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...

  7. python第一天 - dict

    dict key-value集合. d = { ': 'a', ': 'b', ': 'c' } (一).获取集合长度:len(d) = 3(二).获取值: 方式一:d[key];例:d['1'] = ...

  8. python利用dict模拟switch

    pytho本身并未提供switch语句,但可以通过dict来模拟switch, #方法1 def add(x,y): return x+y def dec(x,y): return x-y def m ...

  9. python-list tuple dict set

    1:删除一个列表末尾的元素 pop方法 >>> a [1, 'Jack', 2, 3, 2] >>> a.pop() >>> a [1, 'Jac ...

  10. python基础之dict、set及字符

    python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...

随机推荐

  1. Linux中两个重要的基础服务

    本文服务器基于centos7,客户端Windows10 FTP FTP(File Transfer Protocol),文件传输协议,是一个比较古老的基于TCP,用于不同计算机间传递文件的协议. 安装 ...

  2. scikit-learn基础

    一.scikit-learn基础 sklearn.ensemble模块有两种基于决策树的算法----随机森林和极端随机树

  3. react元素获取e时,点击target为空的现象

    今天呢,学习react过程中,我要获取一个元素的e, checkAll=(e)=>{ console.log(e) console.log(e.target) } render() { retu ...

  4. JS基础——ATM机终端程序编写(2.0)

    在1.0版本上,利用数组进行用户的创建,通过调用数组下标,进行密码.余额的使用.新增了切换账户.修改密码的功能 以下为数组版代码. 创建模拟账户 个账户: let user = ["xiao ...

  5. Vmware上安装Linux(centos7)图文教程

    Vmware上安装Linux(centos7)图文教程   一.准备安装文件(vmware && centos7 镜像) 1.下载  vmware workstations :链接: ...

  6. CTF--HTTP服务--SSI注入

    开门见山 1. 扫描靶场ip,发现VM 192.168.31.160 2. 扫描主机服务信息和服务版本 3. 快速扫描靶场全部信息 4. 探测开放的http的敏感信息 5. 再用dirb扫描敏感页面 ...

  7. 终于知道为什么linux文件系统权限是124了

    哈哈,恍然大悟,出自pythonweb开发实战这一本书135页,有兴趣的朋友可以去了解下!

  8. 模块化系列教程 | 深入源码分析阿里JarsLink1.0模块化框架

    1. 概述 1.1 模块动态加载卸载主流程 2. 模块动态加载 2.1 模块加载源码分析 2.1.1 AbstractModuleRefreshScheduler 2.1.2 ModuleLoader ...

  9. 今天你上班了吗?来聊聊一个隐蔽了 5 年的BUG!

    前言 今天,我们要揭晓一个 FineUI 隐藏最深的一个BUG,这个问题从 2014-07-30 发布 FineUIPro v1.0.0 就一直存在,直到最新于 2020-01-10 发布的 v6.1 ...

  10. 并发队列之DelayQueue

    已经说了四个并发队列了,DelayQueue这是最后一个,这是一个无界阻塞延迟队列,底层基于前面说过的PriorityBlockingQueue实现的 ,队列中每个元素都有过期时间,当从队列获取元素时 ...