Python字典(Dictionary)

字典是一种可变容器模型,可存储任意类型对象。

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

 d = {key1 : value1, key2 : value2 }

字典的特点:

键必须是唯一的,但值则不必唯一。

值可以取任何数据类型,但键必须是不可变的类型。

  不可变类型:数字、字符串、元组;

  可变类型:列表、字典。

字典中键值是无序的。

1、创建字典

方法1:

 dic = {'ID':'','name':'oliver','age':

输出

{'name': 'oliver', 'age': , 'ID': ''}

方法2:

 dic = dict((('ID',''),))   #括号后的逗号表示第二对括号里边是一个序列

输出:

{'ID': ''}

2、访问字典

通过key去查找。

例1:

 dic = {'ID':'','name':'oliver','age':}
print(dic['name'])

输出:

oliver

例2:

 dic = {'ID':'','name':'oliver','age':}
print(list(dic.keys()))

输出:

['age', 'ID', 'name']

例3:

 dic = {'ID':'','name':'oliver','age':18}
print(list(dic.values()))

输出:

18, '', 'oliver']

例4:

 dic = {'ID':'','name':'oliver','age':18}
print(list(dic.items()))

输出:

[('ID', ''), ('age', 18), ('name', 'oliver')]

2、更新字典

若不存在,将dic2中的键值加入dic;若存在,则更新值
 dic = {'ID':'','name':'oliver','age':18}
dic2 = {'':'','':''}
dic.update(dic2)
print(dic)

输出:

{'age': 18, 'ID': '', '': '', 'name': 'oliver', '': ''}

2、删除字典

清空字典

 dic = {'ID':'','name':'oliver','age':18}
print(dic.clear())

输出:

None

删除键值对

 dic = {'ID':'','name':'oliver','age':18}
del dic['name']
print(dic)

输出:

{'age': 18, 'ID': ''}

删除整个字典

 del dic5
print(dic5)

输出:

name 'dic5' is not defined

删除键值对,并返回该key对应的值

 dic = {'ID':'','name':'oliver','age':18}
print(dic.pop('age'))

输出:

18
{'ID': '', 'name': 'oliver'}

随机删除键值对,并以元组的形式返回删除的键值对

 a = dic.popitem()
print(a,dic)

输出:

('ID', '') {'age': 18, 'name': 'oliver'}

setdefault()

如果字典中存在此key,则不做修改;如果不存在,则添加键值。该方法还可以返回添加的值。

 dic = {'ID':'','name':'oliver','age':18}
ret = dic.setdefault('hobby','film')
print(dic)
print(ret)

输出:

{'name': 'oliver', 'ID': '', 'hobby': 'film', 'age': 18}
film

fromkeys()

创建一个新字典。

 dic6=dict.fromkeys(['host1','host2','host3'],'test')
print(dic6)

输出:

{'host2': 'test', 'host1': 'test', 'host3': 'test'}

sorted()

将字典中的键进行排序。

 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
print(sorted(dic))

输出:

[111, 121, 211, 554]

按照键对字典进行排序。

 dic = {111:'aa',554:'bb',211:'ds',121:'asdf'}
print(sorted(dic.items()))

输出:

[(111, 'aa'), (121, 'asdf'), (211, 'ds'), (554, 'bb')]

has_keys()

Python 2中使用has_keys()判断指定的key在字典中是否存在。存在则返回True。

 dic={5:'',2:'',4:''}
dic.has_keys(5)

Python 3中的判断方法:

 print(5 in dic)

3、字典遍历

 dic = {'ID':'','name':'oliver','age':18}
for i in dic:
print(i,dic[i])

输出:

name oliver
age 18
ID 123124

Python——Dict的更多相关文章

  1. Python dict operation introduce

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = ...

  2. Python dict(或对象)与json之间的互相转化

    Python dict(或对象)与json之间的互相转化 原文转载自 1.JSON:JavaScript 对象表示法,是轻量级的文本数据交换格式,独立于语言,平台 2.JSON 语法规则 数据在名称/ ...

  3. python & dict & switch

    python & dict & switch python 中是没用switch语句的,这应该是体现python大道至简的思想,python中一般多用字典来代替switch来实现. # ...

  4. Python dict() 函数

    Python dict() 函数  Python 内置函数 描述 dict() 函数用于创建一个字典. 语法 dict 语法: class dict(**kwarg) class dict(mappi ...

  5. python dict乱码如何解决

    定义字典并直接输出,结果输出结果中文是乱码展示 d={'name':'lily','age':18,'sex':'女','no':1121} print d 输出结果: {'age': 18, 'no ...

  6. 转:python dict按照value 排序

    我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value ...

  7. (翻译)如何对python dict 类型按键(keys)或值(values)排序

    如何对dict类型按键(keys)排序(Python 2.4 或更高版本): mydict = {'carl':40, 'alan':2, 'bob':1, 'danny':3} for key in ...

  8. python dict{}和set([])

    200 ? "200px" : this.width)!important;} --> 介绍 dict(dictionary),在其他语言中也称为map,使用键-值(key- ...

  9. Python dict 按键和值排序

    python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:1 下面的是按照value的值从大到小的顺序来排序. ...

  10. Python dict和set的实现原理

    在python的dict中间进行查找某个key操作时,查找所需时间不会随着dict中键值对数量增多而变长,(时间复杂度为O(1))但是list中就会(时间复杂度为O(N)),这是因为list查询实现的 ...

随机推荐

  1. Python globals() locals() vars() 三个内建函数的区别

    首先参考官方文档对这三个函数的介绍: 2. Built-in Functions – Python3.5 1.globals() 返回当前全局符号表, 通常是返回当前模块下的全局符号表, 比如全局内建 ...

  2. iOS自动化探索(六)自动化测试框架pytest - fixtures

    Fixture介绍 fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面.在编写测试函数的时候,可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将 ...

  3. [转载]JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

  4. Activiti快速入门

    1.什么是Activiti 在解释activiti之前我们看一下什么是工作流.工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照 ...

  5. python 魔法方法补充(__setattr__,__getattr__,__getattribute__)

    python 魔法方法补充 1 getattribute (print(ob.name) -- obj.func())当访问对象的属性或者是方法的时候触发 class F(object): def _ ...

  6. HAWQ取代传统数仓实践(十八)——层次维度

    一.层次维度简介 大多数维度都具有一个或多个层次.例如,示例数据仓库中的日期维度就有一个四级层次:年.季度.月和日.这些级别用date_dim表里的列表示.日期维度是一个单路径层次,因为除了年-季度- ...

  7. 动态加载css、js引用

    在js代码中动态的加载js.css文件的引用 function addJsCssByLink(type,url) { var doc=document; if(type="js") ...

  8. POJ1287 Networking

    解题思路:Kruskal模板题,重复输入的情况,本题是无向图. 见代码: #include<cstdio> #include<algorithm> #include<cs ...

  9. Jam的计数法

    Jam的计数法 题目描述 Description Jam是个喜欢标新立异的科学怪人.他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩.在他的计数法中,每个数字的位数 ...

  10. 布局类,让多个div在一行显示

    原文链接:http://www.divcss5.com/wenji/w472.shtml