python基础知识三 字典-dict + 菜中菜
3.7字典:dict+菜中菜
1.简介
无序,可修改,用于存储数据,大量,比列表快,将数据和数据之间关联
定义:dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}
逗号分割的是一个元素,'cx'(键):10(值) -- 键值对
字典的键:要使用不可变数据类型(可哈希)。要求键唯一,如果有重复的,后面的会将前面的覆盖。
可哈希的 -- 不可变的数据类型 - 避免哈希冲突使用了开放寻址法
不可哈希的 -- 可变的数据类型
字典的值可以任意。
2.字典的使用
1.增:
- 直增:dict1['li'] = 89
- dict1.setdefault('liw',100)#此方法按键去查字典是否有对应的键值对,如果没有,执行添加,如果有,则不添加,有返回值,原字典有,则返回值,没有返回None
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}
#1
dict1['li'] = 89
print(dict1)
#2
print(dict1.setdefault('liw'))
dict1.setdefault('liw',100)
print(dict1.setdefault('liw',100))
print(dict1)
2.删:
del dict1['cx'] :通过查找字典的键删除键值对,如果没有会报错。
dict1.pop('cx'):通过字典的键删除键值对,返回被删除值
dict1.clear():清空
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50,'wu':20}
#1
del dict1['cx']
print(dict1)
#2
dict1.pop('wu')
print(dict1.pop('wu'))
print(dict1)
#3
dict1.clear()
print(dict1)
3.改:
dict1['cx'] = 'dsb' 通过键,如果原字典中没有此键对应的键值对,就是添加,如果有,就是修改
dict1.update(dict2) :update括号中的字典级别高于前边的字典(括号中放的是要跟新的字典)
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}
#2
dict2.update(dict1)
print(dict2)
4.查:
for 循环,获取的是键。
dict1.get('cx') :通过键获取值,如果没有会返回None
dict1['cx'] :通过键获取值,如果没有会报错。
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}
#1
for i in dict1:
print(i)
#2
print(dict1.get('cx'))
#3
print(dict1['cx'])
5.字典的嵌套:
dic = {1001:["周杰伦","林俊杰"],
1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}},
1003:{"陈冠希":["阿娇","阿萨","张柏芝"]},
1004:{"韦小宝":[{"教主夫人":["教主"]},
{"阿珂":"刺客"},
{"双儿":"天地会"},
{"爱心觉罗建宁":"公主"},
{"独臂神尼":{"韦小宝师父":{"兰陵王":"隐身"},"花木兰":[
"唧唧复唧唧","木兰是战士",{"爸爸":["花和尚"]}]
}},
{"陈圆圆":"丈母娘"},{"穆建平":"小郡主"}]},
1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]}
}
# print(dic)
# print(dic[1004]["韦小宝"][0]["教主夫人"][0])
# print(dic[1005]["常鑫"][-1])
# print(dic[1002]["汪峰"]["前妻2"][-1])
# print(dic[1004]["韦小宝"][4]["独臂神尼"]["韦小宝师父"]["兰陵王"])
# print(dic[1004]["韦小宝"][4]["独臂神尼"]["花木兰"][2]["爸爸"][0])
3.菜中菜:
1.高仿列表:
- dict1.keys():获取字典中所有的键
- dict1.vlaues():获取字典中所有的值
- dict1.items():获取字典中所有的键和值(键值对)
2.解构:
解构示意图:
a = 10
b = 12
a,b = b,a
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}
#1.键值对输出
for i in dict1:
print(i,dict1.get(i))
print(dict1.keys())#2.高仿列表 ,支持for循环,不支持索引-- 结果:ict_keys([True, 'zhangyu', 'cx', 'liwenhu'])
for i in dict1.keys():
print(i)
#print(dict1.keys()[0])
#3.dict1.values(),获取所有的值(可以转列表)
print(dict1.values())
print(list(dict1.values()))
#4.dict1.items():获取键值对
for i in dict1.items():
print(i)
##解构
for i,j in dict1.items():#解构输出键值对
print(i,j)
#5.解构。
a,b = 10 ,12
print(a)
print(b)
a = 10
b = 12
a,b = b,a
print(a)
print(b)
a,b = [1,2]
print(a,b)
a,_,b = (3.4.5)#'_'无用,只为将不要的4赋值进去
print(a,b)#等号后边的值与前边的变量数要一致
a = 10,12
print(a)#a是一个元组
a,b ={'1':'a','2':b}
print(a,b)#取到的是键
python基础知识三 字典-dict + 菜中菜的更多相关文章
- Python基础知识(五)------字典
Python基础知识(四)------字典 字典 一丶什么是字典 dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 键: 必须是可哈希,(不可变的数据类型 ...
- Python基础知识(三)
Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...
- Python基础之 一 字典(dict)
字典:是一种key - value的数据类型.语法:info = { key:value }特性:无序,key必须唯一(所以天生去重) 方法如下:del dict[key]:删除字典指定键len(di ...
- python基础知识(字典)
创建字典 变量名 = {key:value,.....} zip() 转换为zip对象 空字典 变量名 = {} 变量名 = dict(key = value,....) 创建只有键的字典 fr ...
- Python基础知识:字典
1.字典中键-值为一对,keys()返回一个列表,包含字典中所有键,values()返回所有值 favorite_languages ={ 'jack':"python", 'al ...
- python 基础知识4 - 字典
1.字典增 #字典增 dic = {'name': '大白', 'age': 20} dic['hight'] = 180 #没有键值对,添加 dic['age'] = 18 #有键值对,覆盖 pri ...
- python基础知识三
在考虑它们的运算时,一定要想到python是一门面向对象语言,它对类型的要求是不那么严格的,因为在完全面向对象的语言中,一切都是对象. 那么让我们重新 考虑+ - * /等操作,不再拘泥于传统的数 ...
- python学习笔记(二)python基础知识(list,tuple,dict,set)
1. list\tuple\dict\set d={} l=[] t=() s=set() print(type(l)) print(type(d)) print(type(t)) print(typ ...
- python基础知识三——try与except处理异常语句
try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对 ...
随机推荐
- Channel 9视频整理【1】
David Dong 微软mvp https://www.facebook.com/DotNetWalker http://studyhost.blogspot.tw/ https://ch ...
- 配置QtCreator+CDB远程调试环境(用到了符号表) good
相关环境信息:开发机Win7 x64.远程机器WinXP.调试器是CDB.Qt版本5.2.1 一.部署远程机器环境 我这里用的是虚拟机(Windows XP),根据你要调试的程序选择安装不同架构的Wi ...
- 完全卸载mysql免安装版
使用以下命令 reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\MySQL& ...
- XPath概述
1. XPath 具体示例可参考网址: http://www.zvon.org/xxl/XPathTutorial/General/examples.html 1.1 概述 * 现节点下所有元素 * ...
- XMLHttpRequest对象的属性与方法
XMLHttpRequest对象是Ajax的核心,它有很多属性和方法.1,readyState属性当一个XMLHttpRequest对象被创立后,readyState属性标示了当前对象处于什么状态,可 ...
- BDC
TC:SHDB 复制到应用处并更改参数. 附上部分代码 * Batchinputdata of single transaction DATA: bdcdata LIKE bdcdat ...
- postman --- 如何在用户登陆和CSRF验证的场景下使用
一.前提 安装postman和Postman Interceptor postman应用放到桌面: 二.用户登陆 这种场景很简单,只要开启Interceptor,然后先请求登陆地址,再继续请求其他地址 ...
- 基于STM32F429和Cube的主从定时器多通道输出固定个数的PWM波形
主从定时器的原理已在上篇博文: 基于STM32F429+HAL库编写的定时器主从门控模式级联输出固定个数PWM脉冲的程序 讲解了,这篇重点就讲如何实现多通道的PWM级联输出. 1.软件环境 Keil5 ...
- (数据科学学习手札63)利用pandas读写HDF5文件
一.简介 HDF5(Hierarchical Data Formal)是用于存储大规模数值数据的较为理想的存储格式,文件后缀名为h5,存储读取速度非常快,且可在文件内部按照明确的层次存储数据,同一个H ...
- CentOS7系统安装
CenOS7安装系统 镜像下载地址: http://isoredirect.centos.org/centos/7/isos/x86_64/ https://mirrors.aliyun.com/ce ...