字典的使用

一、字典的特性

字典是无序的,数据关联性强,键值对,唯一一个映射的数据类型
字典的键必须是可哈希的(不可变的数据类型:字符串,数字,布尔值,元祖),并且是唯一的
不可哈希的(可变的数据类型:列表,字典,集合)

二、字典的增

# 直接增加
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic['weight'] = 75 # 如果不存在则直接添加
dic['name'] = 'ritian' # 如果存在则会替换原有的值
print(dic)
# setdefault有键值对不做改变,没有才会添加
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic.setdefault('k') # 'k'的值默认为None
dic.setdefault('k','v') # 'k'的值为'v'
dic.setdefault('name','v') # 如果有这个键,则不会有改变,没有这个键才会添加
print(dic)

三、字典的删

# pop删除,有返回值
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic.pop('name')) # 按照键删除,返回键对应的值
# print(dic.pop('123')) # 如果键不存在则会报错
print(dic.pop('123','没有不报错')) # 此时如果没有键会返回'没有不报错',逗号后面为返回值
# popitem随机删除键值对
print(dic.popitem()) # 随机删除键值对,会将删除的键值对以元祖的形式返回
# clear清空
dic.clear()
print(dic)
# del删除
# del dic['name'] # 如果没有这个键会报错
print(dic)

四、字典的改

# 直接修改
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic['name'] = 'jinxin'
print(dic)
# update更新
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
dic1 = {'name':'barry','job':'teacher'}
dic.update(dic1)
print(dic) # 将dic1的覆盖dic,dic中有的覆盖,没有的添加进来
print(dic1) # dic1不变

五、字典的查

# 直接查
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic['name']) # 如果键没有会报错
# get
print(dic.get('name')) # 如果没有这个键会返回None
print(dic.get('name','没有这个键')) # 如果没有这个键会返回'没有这个键'

六、字典的特殊用法

# 字典里特殊的用法
dic = {'name':'alex','age':56,'hobby':'oldwomen'}
print(dic.keys()) # dict_keys(['age', 'hobby', 'name'])将所有的键放入一个列表
for key in dic.keys(): # for i in dic:效果等同
print(key) print(dic.values()) # dict_values([56, 'oldwomen', 'alex'])将所有的值放入一个列表
for value in dic.values():
print(value) print(dic.items()) # dict_items([('age', 56), ('hobby', 'oldwomen'), ('name', 'alex')])
for key,value in dic.items():
print(key,value)

day6 字典的增减查删的更多相关文章

  1. python中字典的‘增、删、改、查’

    python 字典的'增.删.改.查' 用 ipython 运行情况如下: #新建字典 In [1]: infos = {'name':'dongge','age':18} In [2]: infos ...

  2. mysql 中的增改查删(CRUD)

    增改查删可以用CURD来表示  增加:create  修改:update   查找:read      删除:delete 增加create :  insert +表名+values+(信息): in ...

  3. 二.2vueadmin-template反向代理/路由配置,idc增查删

    一.反向代理: (1)F:\devops\data\web\vueAdmin-template\config\index.js ---让别人也能访问我的vue前端 host: '0.0.0.0', ( ...

  4. 【基础篇】js对本地文件增删改查--删

    前置条件: 1. 本地有安装node,点击传送门 项目目录: 1. msg.json内容 { "data": [ { "id": 1, "name&q ...

  5. Python基础学习Day5 字典的增、删、改、查的用法 分别赋值

    一.字典的介绍 字典:字典是Python的基础数据类型之一:字典可以存储大量数据,关系型数据. 同样是Python中唯一的映射类数据类型.         数据类型的分类:        可变的数据类 ...

  6. 05、python的基础-->字典的增、删、改、查

    1.字典的增 dict = {'age':19,'name':'老王','hobby':'girl'} dict['sex'] = 'boy' #没有键值对,直接添加 dict[' #有键值对,覆盖值 ...

  7. Python中列表、元组、字典增删改查基本区别

    1.定义: 列表:num = ["a","b"."c"] ##定义后可增删改查 元组:num = ("a"," ...

  8. python 全栈开发,Day5(字典,增删改查,其他操作方法)

    一.字典 字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.存储大量的数据,是关系型数据,查询数据快. 列表是从头遍历到尾字典使用二分查找 二分查找也称折半查找(Bi ...

  9. 【学习笔记】--- 老男孩学Python,day6 字典

    详细方法:http://www.runoob.com/python/python-dictionary.html 1. dict 用大括号{} 括起来. 内部使用key:value的形式来保存数据 { ...

随机推荐

  1. Servlet 容器对URI的处理

    问题 请求到达server以后,server是怎样处理URI请求资源路径的,在与web.xml文件里的映射进行比对时的原则是什么. 方案 针对精确匹配.通配符匹配.后缀匹配三种模式改动web.xml文 ...

  2. python post get请求

    安装 Requests pip install requests import requests requests.get('https://github.com/timeline.json') 使用 ...

  3. 位集合类BitSet

    位集合类中封装了有关一组二进制数据的操作. 我们先来看一下例8.6 BitSetApp.java. 例8.6 BitSetApp.java //import java.lang.*; import j ...

  4. Java多线程基础知识总结

    2016-07-18 15:40:51 Java 多线程基础 1. 线程和进程 1.1 进程的概念 进程是表示资源分配的基本单位,又是调度运行的基本单位.例如,用户运行自己的程序,系统就创建一个进程, ...

  5. 推荐linux命令在线查,简约而不简单

    1.相关介绍: 网址:http://blog.51yip.com/linux/1518.html#more-1518 2.Linux 命令在线sce 网址:http://linux.51yip.com ...

  6. Delphi数据库处理

    Delphi数据库处理 第一节 BDE.ADO.InterBase和dbExpress Delphi中处理数据库主要有两种方法,也就是BDE.ADO,从Delphi 6.0开始还加入了一种dbExpr ...

  7. SQL Server 2008 R2 开启远程连接

    因为sql server 2008默认是不允许远程连接的,sa帐户也是默认禁用的,如果想要在本地用SSMS(SQL Server Management Studio Express) 连接远程服务器上 ...

  8. ArcGIS Runtime SDK for iOS开发系列教程(5)——要素信息的绘制

    在客户端绘制点.线.面要素是GIS应用的基本功能,这一讲我将向大家介绍在iOS中如何来实现这一功能.大家都知道在Flex.Silverlight.js中对于要素的绘制都有一个叫GraphicsLaye ...

  9. 《从零开始学Swift》学习笔记(Day60)——Core Foundation框架

    原创文章,欢迎转载.转载请注明:关东升的博客 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Swift中调用这种C语言风 ...

  10. form.submit 方法 并不会触发 form.onsubmit 事件

    做表单的时候发现一个奇怪的地方,总结下: form.submit 方法 并不会触发 form.onsubmit 事件,看代码: <body> <div class="con ...