Python字典(Dictionary)

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

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

  1. d = {key1 : value1, key2 : value2 }

字典的特点:

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

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

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

  可变类型:列表、字典。

字典中键值是无序的。

1、创建字典

方法1:

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

输出

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

方法2:

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

输出:

  1. {'ID': ''}

2、访问字典

通过key去查找。

例1:

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

输出:

  1. oliver

例2:

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

输出:

  1. ['age', 'ID', 'name']

例3:

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

输出:

  1. 18, '', 'oliver']

例4:

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

输出:

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

2、更新字典

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

输出:

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

2、删除字典

清空字典

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

输出:

  1. None

删除键值对

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

输出:

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

删除整个字典

  1. del dic5
  2. print(dic5)

输出:

  1. name 'dic5' is not defined

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

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

输出:

  1. 18
  2. {'ID': '', 'name': 'oliver'}

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

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

输出:

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

setdefault()

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

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

输出:

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

fromkeys()

创建一个新字典。

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

输出:

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

sorted()

将字典中的键进行排序。

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

输出:

  1. [111, 121, 211, 554]

按照键对字典进行排序。

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

输出:

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

has_keys()

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

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

Python 3中的判断方法:

  1. print(5 in dic)

3、字典遍历

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

输出:

  1. name oliver
  2. age 18
  3. 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. poj 1787 背包+记录路径

    http://poj.org/problem?id=1787 Charlie's Change Time Limit: 1000MS   Memory Limit: 30000K Total Subm ...

  2. ORACLE TO_CHAR,TO_DATE函数格式说明

    YEAR,年份的英文全称 YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位.两位或一位,缺省为当前世纪 MM:01~12的月份编号 MONTH:九个字符表示的月份,右边用空格填补 MON:三 ...

  3. elasticsearch 2.2+ index.codec: best_compression启用压缩

    官方说法,来自https://www.elastic.co/guide/en/elasticsearch/reference/2.2/index-modules.html#_static_index_ ...

  4. 【spark】IDEA建立基于scala语言的spark项目

    1.新建一个Spark项目 2.选择maven,用模板创建项目 如果 没有这个模板,我们需要添加一个 我们这里使用的是1.6版本Archetype Group Id : net.alchim31.ma ...

  5. EL表达式自定义函数

    表达式语言除了可以使用基本的运算符外,还可以使用自定义函数.通过使用自定义函数,加强了表达式语言的功能. EL表达式函数,主要功能是完成对数据的修改,统一化格式: 步骤 1.开发函数处理类,处理类就是 ...

  6. ubuntu下搭建hadoop平台

    终于把单击模式跟伪分布式模式搭建起来了,记录于此. 1.SSH无密码验证配置 因为伪分布模式下DataNode和NameNode均是本身,所以必须配置SSH localhost的无密码验证. 第一步, ...

  7. React 源码剖析系列 - 生命周期的管理艺术

    目前,前端领域中 React 势头正盛,很少能够深入剖析内部实现机制和原理. 本系列文章 希望通过剖析 React 源码,理解其内部的实现原理,知其然更要知其所以然. 对于 React,其组件生命周期 ...

  8. angualr4 环境搭建

    不得不说现在很流行前端MVC框架,angularjs算是一种.以前也用过angularjs感觉还不错,刷新了我对前端的认知.特别是因为我本身是个java开发.但是感觉还是有很多缺点的,直到angula ...

  9. 从无到有开发自己的Wordpress博客主题---创建主题

    上一篇教程,我们已经安装了Wordpress,我们可以成功的登录到Wordpress后台,接下来的任务就是创建我们自己的主题. 要想创建一个Wordpress主题,就必须按照Wordpress的规则, ...

  10. sublime上配置markdown

    等等等等 简书一个不错的教程:Sublime Text3的Markdown配置 补充说明:第一步可以直接找 Tools-->install package control. ^.^ ...