字典的初识:

why:

列表可以存储大量的数据,数据之间的关联性不强

['太白', 18, '男', '大壮', 3, '男']

列表的查询速度比较慢。

what:容器型数据类型:dict。

how:

数据类型的分类(可变与不可变):

可变(不可哈希)的数据类型:list dict set

不可变(可哈希)的数据类型: str bool int tuple

字典:{}括起来,以键值对形式存储的容器型数据类型:

dic = {'太白': {'name': '太白金星','age': 18, 'sex': '男'}, 'python22期': ['朱光亚', '大壮', '雪飞', '岑哥'], }

键必须是不可变的数据类型:int , str (bool tuple几乎不用) 唯一的。

  • 值可以是任意数据类型,对象。

  • 字典3.5x版本之前(包括3.5)是无序的。

  • 字典3.6x会按照初次建立字典的顺序排列,学术上不认为是有序的。

  • 字典3.7x以后都是有序的。

  • 字典的优点:查询速度非常快,存储关联性的数据。

  • 字典的缺点:以空间换时间。

字典的创建方式:

  • # 面试会考# 方式一:# dic = dict((('one', 1), ('two', 2), ('three', 3)))# print(dic) # {'one': 1, 'two': 2, 'three': 3}​# 方式二:# dic = dict(one=1, two=2, three=3)# print(dic)​# 方式三:# dic = dict({'one': 1, 'two': 2, 'three': 3})# print(dic)

验证字典的合法性:

dic = {[1,2,3]: 'alex', 1: 666}  # 键要不可变的数据类型print(dic)dic = {1: 'alex', 1: '太白', 2: 'wusir'}  # 键要唯一print(dic)

fromkeys()

dic=dict.fromkeys('abc',[])print(dic)#{'a': [], 'b': [], 'c': []}

字典的增删改查

dic = {'name': '太白', 'age': 18, 'hobby_list': ['直男', '钢管', '开车']}# 直接增加 有则改之,无则增加   # 增:# 增:# 增:# 增:# dic['age'] = 23  # dic.setdefault('age', 45)#塞的第副的 有则不变,无则增加## ret = dic.pop('hobby','没有此键') #按照键删除键值对 有返回值设置第二个参数则无论字典中有无此键都不会报错# dic.clear() ## clear 普利饿 清空 **# # del dic['age'] # del **# dic['name'] = 'alex' # 改# 改# 改# 改# 改# print(dic)# print(dic['hobby_list'])# 查# 查# 查# 查# 查# 查# 查# l1 = dic.get('hobby_list1','没有此键sb')  # print(l1) # 可以设置返回值# print(dic.keys(),type(dic.keys()))# print(list(dic.keys()))# 可以转化成列表# for key in dic.keys():#     print(key)#循环输出建# values()# print(dic.values())# print(list(dic.values()))##转为列表# for value in dic.values():#     print(value)#循环输出值# print(dic.items()) #请循环输出所有的key和value# for key,value in dic.items():#     print(key,value) ###重要# a,b = ('name', '太白')# print(a,b)# 面试题# a = 18   #拆包# b = 12# a,b = b,a# # a,b = 12,18# print(a,b)​

相关练习题:

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}# 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典# 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典# 请在k3对应的值中追加一个元素 44,输出修改后的字典# print(dic['k3'])# l1 = dic.get('k3')# print(l1)# dic.get('k3').append(44)# print(dic)# 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典
  • 字典的嵌套

    dic = {    'name': '汪峰',    'age': 48,    'wife': [{'name': '国际章', 'age': 38},],    'children': {'girl_first': '小苹果','girl_second': '小怡','girl_three': '顶顶'}}​# 1. 获取汪峰的名字。## 2.获取这个字典:{'name':'国际章','age':38}。## 3. 获取汪峰妻子的名字。​# 4. 获取汪峰的第三个孩子名字。

转载于:https://www.cnblogs.com/saoqiang/p/10908357.html

day 05 字典dic(增删改查 嵌套)相关推荐

  1. 字典(dict),增删改查,嵌套

    一丶字典 dict 用{}来表示  键值对数据  {key:value}  唯一性 键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键 值 没有任何限制 二丶字典的增删改查 1.增 dic[k ...

  2. python字典进行大写转化_python之字典的增删改查

    1.列表的缺点 列表可以存储大量的数据,数据之间的关联性不强. 列表的查询速度比较慢. 容器型数据类型:dict 2.数据类型的分类(可变与不可变) 可变(不可哈希)的数据类型:list dict s ...

  3. 字典,和字典的增删改查

    1. 什么是字典 字典是以key:value的形式来保存数据 用{}表示. 存储的是key:value 2. 字典的增删改查(重点) 1. 添加 dic[新key] = 值 setdefault() ...

  4. python字典增删改查项目_字典的增删改查如何操作?

    什么是字典? 字典是一种可变,无序,可迭代的储存形式 在字典中它们的储存是以键值对来存的! 也就是吧两个相关的值关联起来,通过我的键来查找我的值! 可以存储各种的数据类型 ! 字典的操作跟列表一样,分 ...

  5. 列表的增删改查,嵌套等,及元组的查

    一丶列表 1.什么是列表 列表是一个可变的数据类型 列表由[]表示每一项元素,使用逗号隔开,列表什么都能装,能装对象的对象. 列表可以装大量的数据 lst = ["赵四",&quo ...

  6. # 遍历删除字典元素_Python基础知识:快速了解字典的增删改查以及自定义不可变字典...

    字典在很多的高级语言中是很常见的,java中的hashmap,php中的键值对的数组,python中的是dict,它是一个可变的容器模型,可以存储任意的数据结构,但是容器中的每个元素都是以键值对的形式 ...

  7. 字典的增删改查 daty 5

    字典:python中非常重要的数据类型,在python中唯一一个映射的数据类型数据类型分类 按照数据可变与不可变: # 不可变数据类型: int str bool tuple # 可变数据类型: li ...

  8. python嵌套列表操作_python 列表增删改查 嵌套 相关操作

    ---恢复内容开始--- 今日内容: 一.列表 1.  列列表的介绍        列列表是python的基础数据类型之⼀一 ,其他编程语⾔言也有类似的数据类型. 比如JS中的数 组, java中的数 ...

  9. python自学第七天之字典的增删改查

    1.增: dic[key] = valuedic.setdefault(key,value) #如果在字典中存在就不进行添加,不存在就进行添加可以通过key查询,没有这个key就返回None 例: d ...

最新文章

  1. mysql ef sql语句_EF to MySQL 的 Database.ExecuteSqlCommand 和 SqlQuery
  2. 鴻雁 Anser cygnoides
  3. WPF bitmap转bitmapimage 使用 CreateBitmapSourceFromHBitmap内存泄漏
  4. html盒子模型页面居中,【静态页面架构】CSS之盒子模型
  5. androidstuio实现页面跳转_vue-router 基础:4类路由跳转示例
  6. linux screen vim 颜色不一样,tmux中的Vim显示错误的颜色
  7. CDS ORF 5‘UTR 3'UTR
  8. 报错:error while loading shared libraries: libz.so.1: cannot open shared object file
  9. 征途2助手网关服务器,【征途2】官方网站-《征途2》夏日激情来袭,清凉一夏版本送限定套装...
  10. 大数据技术在电子政务中的应用
  11. ART模式下dex2oat出错导致系统无法正常启动
  12. 基于vlan 无线用户隔离
  13. MySql版本号查看命令
  14. 嵌入式软件异步编程:请求的多阶段异步处理
  15. 计算机按键 shift的作用,电脑shift键的十一个妙用
  16. ubuntu20.04开机黑屏解决方法
  17. 日常英语---十一、MapleStory/Monsters/Level 201-210(Dark Demon Eagle Rider)
  18. Android自定义控件开发入门与实战(1)绘图基础
  19. 2018 BACS Regional Programming Contest C. BACS, Scoundrel Shopkeeper and Contiguous Sequence (模拟)
  20. 基于模板匹配的目标跟踪法

热门文章

  1. java开发总结_java开发几点总结
  2. 学习C++项目——mysql 数据库知识学习(关于 mysql 8.0 版以后基础部分学习)
  3. 一次性搭建Hadoop高可用集群
  4. 官方华为鸿蒙os正式推送的版本,鸿蒙OS 2.0他来了!华为HarmonyOS 2.0开发者公测版正式推送...
  5. [linux]单网卡绑定多个IP
  6. 从源码角度彻底理解ReentrantLock(重入锁)
  7. 《灵枢-五色》明堂藩蔽图
  8. Vue : Expected the Promise rejection reason to be an Error
  9. 死磕Spring AOP系列2:剖析Bean处理器之BeanNameAutoProxyCreator
  10. android.view.VelocityTracker