拓展
li = ['alex','wusir','taibai']
print('_'.join(li))
拼接的符号''.join(可迭代对象)

字典--dict
字典:用于存贮数据,存贮大量数据
优点:速度快(快于列表)
能将数据之间关联起来

定义一个字典
dict = {'1':10,'2':20,'张与':40}
字典中逗号分割开的叫做一个元素'1'(键):10(值) 键值对
字典的键:
可哈希的---不可变的数据类型--避免哈希冲突,使用了开放群值法
不可哈希---可变的数据来兴
要求唯一--如果有重复的后边的值前面的值覆盖
字典的值:
可以任意

合法
dic = {123: 456, True: 999, "id": 1, "name": 'sylar',
"age": 18, "stu": ['帅哥', '美⼥'], (1, 2, 3): '麻花藤'}
print(dic[123])
print(dic[True])
print(dic['id'])
print(dic['stu'])
print(dic[(1, 2, 3)])
不合法
dic = {[1, 2, 3]: '周杰伦'} # list是可变的. 不能作为key
dic = {{1: 2}: "哈哈哈"} # dict是可变的. 不能作为key
dic = {{1, 2, 3}: '呵呵呵'} # set是可变的, 不能作为key

注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据


dic = {'张与':[1,2,3]}
dic['李文虎'] = 89
print(dic)#直接添加,暴力添加

dic = {'张与':[1,2,3]}
dic.setdefault('李文虎','89')
print(dic)

dic = {'张与':[1,2,3],'李文虎':'89'}
dic.setdefault('李文虎','100')
print(dic)
# 李文虎这个键去字典查询,如果不存在执行添加,如果存在就不添加。

dic = {'张与':[1,2,3],'李文虎':'89'}
print(dic.setdefault('王菲'))
print(dic)
89 存在
None 不存在 执行添加

删除
dic = {'张与':[1,2,3],'李文虎':'89'}
del dic['张与']
print(dic)#通过字典的键删除键值对

dic = {'张与':[1,2,3],'李文虎':'89'}
print(dic.pop('张与'))
print(dic)#通过字典的键删除键值对,有返回值-被删除的值

dic = {'张与':[1,2,3],'李文虎':'89'}
dic.clear()
print(dic)


dic = {'张与':[1,2,3],'李文虎':'89'}
dic['张与'] ='asd'
print(dic)#字典中没有某个键值对的时候就是添加,当键在字典中存在的时候就是修改
有则改,无则加
例:
dic = {'张与':[1,2,3],'李文虎':'89'}
dic.update({'1':3,'5':4,'李文虎':100})
print(dic)

dic = {'张与':[1,2,3],'李文虎':'89'}
dic1 = {'1':3,'5':4,'李文虎':100}
dic1.update(dic)
print(dic1)#update()的字典级别高于update前面的字典


dic = {'1':3,'5':4,'李文虎':100}
for i in dic:
print(i)#获取的是每个键值对的键

dic = {'1':3,'5':4,'李文虎':100}
print(dic.get('李文虎'))

dic = {'1':3,'5':4,'李文虎':100}
print(dic.get('王菲'))
通过键获取值,如果不在字典中返回NONE

dic = {'1':3,'5':4,'李文虎':100}
print(dic['李文虎'])

dic = {'1':3,'5':4,'李文虎':100}
print(dic['王菲'])
通过键获取值,如果不在字典中报错

其它操作

dic = {'1':3,'5':4,'李文虎':100}
for i in dic:
print(i,dic.get(i))

高仿列表
dic = {'1':3,'5':4,'李文虎':100}
print(dic.keys())
高仿列表---dict_keys(['1', '5', '李文虎'])
可实现功能
for循环(可实现)
dic = {'1':3,'5':4,'李文虎':100}
for i in dic.keys():
print(i)

索引查询(不可实现)
dic = {'1':3,'5':4,'李文虎':100}
print(dic.keys[0])

迭代添加新列表(可实现)
lst = []
dic = {'1':3,'5':4,'李文虎':100}
for i in dic:
lst.append(dic[i])
print(lst)

获取字典中所有的值(可实现)
dic = {'1':3,'5':4,'李文虎':100}
print(dic.values())

获取字典中所有的键值对(可实现)
dic = {'1':3,'5':4,'李文虎':100}
print(dic.items())

for循环获取字典中所有的键值对(可实现)
dic = {'1':3,'5':4,'李文虎':100}
for i in dic.items():
print(i[0],i[1])

解构
a = 10
b = 20
a,b = b,a
print(a,b)

a,b = 1,2
print(a)
print(b)

a,b = [1,2]
print(a)
print(b)

a,b = (3,4,5)
print(a,b)#报错,没有一一对应

a,_,b = (3,4,5)
print(a,b)#等号后边的值和前面的变量名一一对应

a = 10,12 #本质是一个元组
print(a)

a,b = '23'
print(a,b)

a,b = {'1':'a','2':'b'}
print(a,b)

dic = {'1':3,'5':4,'李文虎':100}
for k,v in dic.items():
print(k,v)

字典的嵌套
dic = {1001:['a','b']
1002:{'c':{'前期1':['大烧饼’],'前妻2':['熊大','熊二'],'国际章':'rose'}},
1003:{'陈冠希':['啊娇','啊撒','张柏芝']},
1004:{'韦小宝':[{'教主夫人':{'教主'}},{'阿珂':'刺客'},{'双儿':'天地会'},{爱新觉罗建宁:公主}]}
}
print(dic[1004]['韦小宝'][0]['教主夫人'][0])

总结
字典--dict
无序,可变的
键:使用不可变数据类型(可哈希),键是唯一的
值:可以任意


dic['键']='值'
dic.setdefault('键','值')#存在不添加

删除
del dic['键']
dic.pop['键']
dic.clear()


dic['键']='值'
dic.update('要更新的字典')


for循环查询的是字典的键
get('键')#存在返回字典中键对应的值,不存在返回NONE
dic['键']#存在返回字典中键对应的值,不存在报错

其它操作
keys---获取字典中所有的键,存放在一个高仿列表中
values--获取字典中的所有值,存放在一个高仿的列表中
items--获取字典中所有键和值 存放在一个高仿的列表中(元组第一个为键,第二个为值)

解构

a = 10
b = 20
a,b = b,a

字典的嵌套
查找的时候一层一层通过键进行查找键

转载于:https://www.cnblogs.com/zhuzhizheng/p/11167070.html

Day 5 字典以及字典的用法相关推荐

  1. Python成长之路第二篇(3)_字典的置函数用法

    字典的置函数用法(字典dict字典中的key不可以重复) class dict(object): """ dict() -> new empty dictionar ...

  2. python列表、字典、元组的用法及区别_python列表,字典,元组简单用法示例

    本文实例讲述了python列表,字典,元组简单用法.分享给大家供大家参考,具体如下: 列表 #_*_ coding:utf-8 _*_ # 列表,定义在方括号的形式中,可以进行切片操作. #它没有固定 ...

  3. python读取json格式文件大量数据,以及python字典和列表嵌套用法详解

    1.Python读取JSON报错:JSONDecodeError:Extra data:line 2 column 1 错误原因: JSON数据中数据存在多行,在读取数据时,不能够单单用open(), ...

  4. python 存储字典_python 字典存储

    Python学习笔记--元组.列表和字典的使用笔记 Python学习笔记--元组.列表和字典的使用笔记 最近开始学习python语言,所以在学习中做了一些记录,这次讲的是元组.列表和字典的基础操作和区 ...

  5. python定义空字典_python字典空值

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为defaul ...

  6. python 命名字典_python字典命名

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! usrbinpython dict = {: zhang, age: 27} ...

  7. python菜鸟教程字典-Python3 字典

    Python3 字典 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格 ...

  8. python输入文字、成为字典_Python 字典(Dictionary)操作详解

    一.创建字典 字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} ...

  9. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

最新文章

  1. Mingw-W64编译Windows程序提示:undefined reference to `__imp_GetStockObject' 的解决方法
  2. Python问题3——爬虫编码问题
  3. strtotime 获取一个月的开始 或者一个月的结束
  4. 温故知新ASP.NET 2.0(C#)(1) - MasterPage(母版页)
  5. 海滨学院计算机基础知识,北京交通大学海滨学院计算机基础考试卷-网络应用基础...
  6. C++--22.特殊类的设计
  7. VMware增强型键盘驱动程序
  8. P2P继续停止...
  9. VScode 删除远程资源管理器中SSH TARGETS
  10. kali liunx安装拼音输入法,必须成功,只需5步
  11. 作业二:wireshark抓包与ping操作
  12. Dataway让Spring Boot不再需要Controller、Service、DAO、Mapper
  13. linux下usb转串口驱动分析
  14. matlab中alw,MATLAB环境下遗传算法优化工具箱的应用_刘万林
  15. android 杀毒 源代码,ExeBinder - 源码下载|其它|杀毒|源代码 - 源码中国
  16. 虚拟语气用法总结及真题解析
  17. VMware Workstation部署WindowsXP
  18. c语言实现链表的逆序输出,C语言数据结构实现链表逆序并输出
  19. iView 3.4.0 发布,基于 Vue.js 的企业级 UI 组件库
  20. Java微信小程序接入企业付款到零钱

热门文章

  1. JSRUN 对比 jsfiddle,jsbin,codepen
  2. 干货分享——产品经理必备的技能:专业技能和软技能。
  3. Python简单实现图像融合
  4. xp下硬盘安装Ubuntu Kylin 14.04
  5. ubuntu设置开机启动程序
  6. CF14E Camels(暴力dp || 优化dp)
  7. 票房拐点之后的影院并购,继续“小而频”还是大洗牌
  8. UVA 10115 Automatic Editing (字符串的替换和查找)
  9. python去除字符串中空格和特殊符号的方法
  10. 别让假装努力毁了你,最强的68道软件测试基础问答题你能答的溜嘛?