python_8_字典
什么是字典?
--key -value 的数据类型,找到key就可以找到对应的值
--字典形式:{key1:value1,key2:value2,......}
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
-- 字典嵌套使用:{key:{key,value},......}
city = {'湖南':
{'长沙': '省会城市', '衡阳': '湖南第二大城市'},
}
-- 判断key是否在字典中 : key in dic #在返回True,不存在返回False
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
try:
if 'name' in dict_1:
print(dict_1['name'])
except Exception as e:
print(e)
字典有哪些特性?
--无序,why? 字典中通过key找到值,不需要记住位置
-- key值唯一,天生去重
字典中有哪些操作?
- 查
dic[key] -- 查看key对应的value,不存在key出错
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}try:
print(dict_1['呵呵'])
except KeyError as e: # 触发key异常
print(e)
dic.get(key) -- 有key对应value,返回,没有返回none
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
try:
print(dict_1.get('呵呵')) # 没有返回None
except KeyError as e: # 触发key异常
print(e)
- 改
dic[‘key’] =‘value’ -- key存在则改value,不存在则添加进去
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
city = {'湖南':
{'长沙': '城市', '衡阳': '湖南第二大城市'},
}
try:
dict_1['name'] = '北门吹雪' # 修改value
print(dict_1)
dict_1['sex'] = '保密' # 没有添加 sex:保密 键值对
print(dict_1)
except Exception as e: # 触发key异常
print(e)
- 增
- 删
del dic -- 把字典全删了
del dic[key] -- 删除对应的key和value
dic.pop(key) -- 删除指定的值,key必须写,返回key对应的value
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
try:
del dict_1['name'] # 删除 'name': '一枝花'
print(dict_1)
result = dict_1.pop('age') # 取出'age'对应的'18'返回
print(result)
del dict_1 # 把字典删除了
print(dict_1) # 触发字典没有定义异常
except Exception as e: # 触发异常
print(e)
- 更新
dic.update(dic2) -- 用dic2字典去更新dic字典,key不同则合并,key相同dic2的value覆盖dic的value
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
city = {'湖南':
{'长沙': '城市', '衡阳': '湖南第二大城市'},
'name':'北门吹雪'
}
try:
dict_1.update(city) # 用city字典去更新dict_1字典
print(dict_1)
except Exception as e: # 触发异常
print(e)
- 复制
--.copy() -- 和列表一样,浅浅拷贝,大坑
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
city = {'湖南':
{'长沙': '湖南第一大城市', '衡阳': '湖南第二大城市'},
'name':'北门吹雪'
}
try:
city_2 = city.copy()
city_2['name'] = '西门吹风' # 更改city_2一层的数据
city_2['湖南']['长沙'] = '全国知名城市' # 更改city_2嵌套的数据
print('city:', city) # 一层不随着更改
print('city_2:', city_2) # 二层随着更改,大坑
except Exception as e: # 触发异常
print(e)
如何查看字典单边值?
- dic.key() -- 打印所有key
- dic.value() -- 打印所有的value
- dic.setdefault(key,value) --先去取key对应的值,没有则创建
#!/usr/bin/python3
dict_1 = {', 'phone_number': '155-7777-7777'}
city = {'湖南':
{'长沙': '湖南第一大城市', '衡阳': '湖南第二大城市'},
'name':'北门吹雪'
}
try:
print('key:', city.keys())
print('value:', city.values())
result = dict_1.setdefault('phone_number', '呵呵') # 有获得value
print(result)
result = dict_1.setdefault('phone', '安卓') # 没有获得 安卓 ,并添加'phone': '安卓' 键值对到dict_1字典中
print(result)
print(city)
except Exception as e: # 触发异常
print(e)
python_8_字典的更多相关文章
- 【DG】Oracle_Data_Guard官方直译
[DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍 Oracle Data Guard概念和管理10g版本2 Oracle Data Guard ...
- DVWA实验之Brute Force(暴力破解)- Low
DVWA实验之Brute Force-暴力破解- Low 这里开始DVWA的相关实验~ 有关DVWA环境搭建的教程请参考: https://www.cnblogs.com/0yst3r-2 ...
- Oracle错误览表
Oracle 错误总结及问题解决 ORA 本文转自:https://www.cnblogs.com/zhangwei595806165/p/4972016.html 作者@承影剑 ORA-0 ...
- Javacript实现字典结构
字典是一种用[键,值]形式存储元素的数据结构.也称作映射,ECMAScript6中,原生用Map实现了字典结构. 下面代码是尝试用JS的Object对象来模拟实现一个字典结构. <script& ...
- python 数据类型 ----字典
字典由一对key:value 组成的 python中常用且重量级的数据类型 1. key , keys, values 字典由一对key:value 组成的 python中常用且重量级的数据类型 1. ...
- 增强版字典DictionaryEx
代码 public class DictionaryEx<TKey, TValue> : IDictionary<TKey, TValue> { /// <summary ...
- python学习笔记(字符串操作、字典操作、三级菜单实例)
字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...
- python之最强王者(8)——字典(dictionary)
1.Python 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包 ...
- python序列,字典备忘
初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...
随机推荐
- Python 读取文件 with语句 管理上下文
为了避免打开文件后忘记关闭,可以通过管理上下文 with open('file_name', 'r') as f: pass with 执行完毕之后 自动关闭且释放资源
- 深入理解ES6之—符号与符号属性
在js已有的基本类型(字符串,数值,布尔型,null和undefined)之外,es6引入了一种新的基本类型:==符号(Symbol)==.符号起初被设计用于创建对象私有成员. 符号没有字面量形式,你 ...
- 简易 (I/O)版本通讯录
#include <stdio.h> #include<assert.h> //#include<malloc.h> #include<string.h> ...
- echart
先介绍echart: 官网: http://echarts.baidu.com 看名字就知道是百度出品的. ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC ...
- 跟我一起读postgresql源码(十)——Executor(查询执行模块之——Scan节点(下))
接前文跟我一起读postgresql源码(九)--Executor(查询执行模块之--Scan节点(上)) ,本篇把剩下的七个Scan节点结束掉. T_SubqueryScanState, T_Fun ...
- contain_of宏定义
Container_of在Linux内核中是一个常用的宏,用于从包含在某个结构中的指针获得结构本身的指针,通俗地讲就是通过结构体变量中某个成员的首地址进而获得整个结构体变量的首地址. 实现方式: co ...
- Vivado常见问题集锦
5. Vivado软件更新新版后更新IP 当更新到新版本的Vivado后,之前的一些工程的IP是不能直接打开使用的,这个时候我们只需要使用新版本的Vivado更新一下每个工程的IP即可,使用新版本Vi ...
- Angular17 Angular自定义指令
1 什么是HTML HTML文档就是一个纯文本文件,该文件包含了HTML元素.CSS样式以及JavaScript代码:HTML元素是由标签呈现,浏览器会为每个标签创建带有属性的DOM对象,浏览器通过渲 ...
- Java Web应用集成OSGI
对OSGI的简单理解 就像Java Web应用程序需要运行在Tomcat.Weblogic这样的容器中一样.程序员开发的OSGI程序包也需要运行在OSGI容器中.目前主流的OSGI容器包括:Apach ...
- 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别
第一种:for循环 循环结构for语句的格式: for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体; } eg: class Dome_For2{ public st ...