字典是另一种可变容器模型,且可存储任意类型对象,下标从0开始,最后一个为-1。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必,字典是无序的。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

一个简单的字典实例:

dict = {'aaa': '', 'bb': '', 'ccc': ''}

也可如此创建字典:

dict1 = { 'ddd': 1234 };
dict2 = { 'ddd': 1235, 98.6: 37 };

1. 增加

d['height'] = 170
d.setdefault('age','21') #显示d这个字典的'age'值的内容,因为字典有,所以不会去设置它
 #字典: key-value, 取值方便,速度快,key不能重复
d = {'name':'nancy',
'age':'',
'sex':'female',
'addr': 'nb'
}
#增加
d['height'] = 170
print(d) # -> {'sex': 'female', 'age': '20', 'name': 'nancy', 'height': 170, 'addr': 'nb'}
#字典是无序的
value = d.setdefault('age','') #显示d这个字典的'age'值的内容,因为字典有,所以不会去设置它
print(value) #
value1 = d.setdefault('weight',98) ##显示d这个字典的'weight'值的内容,因为字典没有,所以设置为98了
print(value1) #-> 98
print(d) # -> {'height': 170, 'name': 'nancy', 'age': '20', 'addr': 'nb', 'sex': 'female', 'weight': 98}

2. 删除

d.pop('height')#删除某个key,这个比较常用
d.popitem() # 随机删除一个
del d['name']#删除某个key
d.clear()#清空字典
 #字典: key-value, 取值方便,速度快,key不能重复
d = {'name':'nancy',
'age':'',
'sex':'female',
'addr': 'China',
'height': ''
}
#删除
d.pop('height')#删除某个key,这个比较常用
print(d) # -> {'sex': 'female', 'age': '20', 'name': 'nancy', 'addr': 'China'}
d.popitem() # 随机删除一个
print(d) #-> {'age': '20', 'name': 'nancy', 'addr': 'China'}
del d['name']#删除某个key
print(d) # -> {'sex': 'female', 'addr': 'China'}
d.clear()#清空字典
print(d) # -> {}

3. 修改

d['height'] = 170 #如果key 存在的话,修改它的值,如果不存在的话新增
 #字典: key-value, 取值方便,速度快,key不能重复
d = {'name':'nancy',
'age':'',
'sex':'female',
'addr': 'China',
'height': ''
}
#修改
d['height'] = 170 #如果key 存在的话,修改它的值,如果不存在的话新增
print(d) # -> {'addr': 'China', 'name': 'nancy', 'height': 170, 'age': '20', 'sex': 'female'}

4. 查看

通过方括号[]取值查看

 #字典: key-value, 取值方便,速度快,key不能重复
d = {'name':'nancy',
'age':'',
'sex':'female',
'addr': 'China',
'height': ''
}
#查看
print(d['name'])#如果写了不存在的key,会报错 -> nancy
print(d['age']) # -> 20
print(d.get('addr')) # -> China
print(d.get('addr1'))#如果get()不到的话,返回None -> None
print(d.get('addr2','找不到')) # -> 找不到
print(d.keys())#取得所有的key -> dict_keys(['age', 'addr', 'height', 'name', 'sex'])
print(d.values())#获得所有的value -> dict_values(['20', 'China', '180', 'nancy', 'female'])
#d.has_key('addr')#python2 里面有这个方法,python3里没有
if 'addr' in d: #判断key 是否在这个字典里
print('addr') # -> addr
#if 'addr' in d.keys():
 for k in d: #取到key
print(k) # 打印所有的key值 print(d.items())#是把字典的key,value 转成一个二维数组(实际上不是真的二维数组,要使用需强制转换),性能不好
# -> dict_items([('height', '180'), ('sex', 'female'), ('addr', 'China'), ('age', '20'), ('name', 'nancy')])
res = list(d.items())
print(res[0]) # ->('height','180') for k,v in d.items():#可以同时把key 和value 取出来
print(k,v)
#height 180
#sex female
#addr China
#age 20
#name nancy for k in d:#性能好,保留了字典原有的特性
print(k,d.get(k))
# height 180
# sex female
# addr China
# age 20
# name nancy

python 中字典的操作(增、删、改、查)的更多相关文章

  1. django单表操作 增 删 改 查

    一.实现:增.删.改.查 1.获取所有数据显示在页面上 model.Classes.object.all(),拿到数据后,渲染给前端;前端通过for循环的方式,取出数据. 目的:通过classes(班 ...

  2. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  3. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  4. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  5. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  6. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  7. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  8. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

  9. MongoDB增 删 改 查

    增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...

随机推荐

  1. php -- php数组相关函数

    array range ( mixed $low , mixed $high [, number $step ] ) 创建一个连续的数组 range('a','z'); foreach (range( ...

  2. 【BZOJ】1633: [Usaco2007 Feb]The Cow Lexicon 牛的词典(dp)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1633 一开始也想到了状态f[i]表示i以后的字符串最少删的数 然后想到的转移是 f[i]=min{f ...

  3. thinkphp相关功能整合系列

    thinkphp整合系列之短信验证码.订单通知 thinkphp整合系列之rbac的升级版auth权限管理系统demo thinkphp整合系列之阿里云oss thinkphp整合系列之phpmail ...

  4. 传递任意数量的实参*parameter&使用任意数量的关键字实参**parameter

    1.*形参名(*parameter) 有时候我们不知道知道函数需要接受多少个实参,所以我们可以在形参名前加一个*,是让python创建一个名为parameter的空元组,并将收到的所有值都封装到这个元 ...

  5. Laravel5.1 文件管理

    Laravel提供了一套很好用的文件系统 方便于管理文件夹和文件,支持Amazon S3和Rackspace云存储等驱动. 1 配置 文件系统的配置文件在 config/filesyetems.php ...

  6. C# 导出Excel "正在中止线程" 错误

    导出Excel相信很多人都用过,但是我却遇到了一个问题 “正在中止线程” 源代码如下: public static void ExportExcel(string fileName, GridView ...

  7. JS-Zepto.js中文链接

    附上zepto.js的中文链接:http://www.css88.com/doc/zeptojs_api/ 小伙伴再也不用担心“这特么到底啥意思!”

  8. svn移动目录时如何保留原来的日志

    [问题描述] 想将SVN下的文件夹A移动目录D下,同时保留文件夹A及其下面文件的SVN日志 [原来的做法]         将文件夹A直接拷贝到目录D,然后提交到SVN [原来做法的问题]   日志无 ...

  9. AngularJS 解决 SEO 问题

    由于 AngularJS 返回的是HTML模板,实际的内容需要执行JS以后才会填充进去,导致百度抓取蜘蛛抓不到,因此产生了 AngularJS 的 SEO 问题.经过几天的研究试验,我们的解决方案是这 ...

  10. Spark 源码分析 -- RDD

    关于RDD, 详细可以参考Spark的论文, 下面看下源码 A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. ...