字典的使用

一、字典的特性

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

二、字典的增

# 直接增加
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. 【转】redis C接口hiredis 简单函数使用介绍

    from : http://blog.csdn.net/kingqizhou/article/details/8104693 hiredis是redis数据库的C接口,目前只能在linux下使用,几个 ...

  2. jquery.js:8672 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.

    html5谷歌流浪器报错:jquery.js:8672 Synchronous XMLHttpRequest on the main thread is deprecated because of i ...

  3. win10执行shell脚本

    我们在win10如何执行以.sh文件的脚本呢? 开发步骤:1.写脚本b2q_goods.sh #!/bin/bashsql="select * from b2q.goods where go ...

  4. Android插件化开发之OpenAtlas生成插件信息列表

    上一篇文章.[Android插件化开发之Atlas初体验]( http://blog.csdn.net/sbsujjbcy/article/details/47446733),简单的介绍了使用Atla ...

  5. nodejs之路探寻

    在webpack配置中经常会发现 const path = require('path') 这是加载nodejs路径处理API,这个API主要包含下面三个方法 path.dirname(filepat ...

  6. 手机控制电脑定时关机,重启WiFi

    需求 晚上上床,电脑开着WiFi让手机上网.要么上床之前就给电脑设置定时关机:要么就电脑开通宵:要么就待会下来关电脑.这3种情况都非常不好,要么麻烦,要么浪费. 最无奈的是电脑刚开好WiFi,上床后才 ...

  7. bnuoj 34990(后缀数组 或 hash+二分)

    后缀数组倍增算法超时,听说用3DC可以勉强过,不愿写了,直接用hash+二分求出log(n)的时间查询两个字符串之间的任意两个位置的最长前缀. 我自己在想hash的时候一直在考虑hash成数值时MOD ...

  8. EF 更新操作 lambda解释+=

    我曾写过一个EF批量更新.删除的博客,后来操作的过程中经常遇到更新字段,但是要在原来的基础上计算的情况,我就先去获取一遍数据然后再计算,最后再去更新,显然这个操作是很复杂的 var guest = d ...

  9. Spring Cloud Feign组件

    采用Spring Cloud微服务框架后,经常会涉及到服务间调用,服务间调用采用了Feign组件. 由于之前有使用dubbo经验.dubbo的负载均衡策略(轮训.最小连接数.随机轮训.加权轮训),du ...

  10. PIP源使用国内镜像

    对于Python开发用户来讲,PIP安装软件包是家常便饭.但国外的源下载速度实在太慢,浪费时间.而且经常出现下载后安装出错问题.所以把PIP安装源替换成国内镜像,可以大幅提升下载速度,还可以提高安装成 ...