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. zabbix报警优化

    常见rpc服务介绍 ---远程过程调用协议 常用的框架:阿里巴巴 Dubbo.微博 Motan.阿帕奇 thrift.谷歌 grpc Dubbo 是阿里巴巴公司开源的一个Java高性能优秀的服务框架, ...

  2. 避免Gson使用时将一些字符自动转换为Unicode转义字符

    // 避免Gson使用时将一些字符自动转换为Unicode转义字符 public static Gson gson = new GsonBuilder().disableHtmlEscaping(). ...

  3. Ti CC2540蓝牙模块学习笔记整理

    接触CC2540几天,终于有了初步的理解,现将笔记整理如下,只是皮毛,如有错误,还请指正,还有好多没闹明白的地方,以后应该还会继续向里面更新~ 一.整体 1.TI的蓝牙平台支持2种协议栈/应用配置:单 ...

  4. LeetCode OJ:Remove Duplicates from Sorted List (排好序的链表去重)

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  5. Wix是什么?

    Wix是Windows Installer XML的简称,其通过类XML文件格式来指定了用于创建Windows Installer安装包数据库的元素.关于Wix的详细介绍,http://wixtool ...

  6. Python中实现装饰模式的三种方式

    功能目标 编写一个可以打印被装饰函数名称.执行时间.内存地址得装饰器 前置依赖包 import time import functools from decorator import decorato ...

  7. Spring Boot打包总结

    环境配置信息 -** JDK 1.8 -** Spring Boot 1.5.3.RELEASE -** IDE: STS 3.4 Spring Boot下打包过程 基于STS创建Spring boo ...

  8. Android 进阶14:源码解读 Android 消息机制( Message MessageQueue Handler Looper)

    不要心急,一点一点的进步才是最靠谱的. 读完本文你将了解: 前言 Message 如何获取一个消息 Messageobtain 消息的回收利用 MessageQueue MessageQueue 的属 ...

  9. asp.net identity的学习记录

    # identity数据库 ## 创建空数据库 交给ef管理 ### 添加asp.net identity包 ``` Install-Package Microsoft.AspNet.Identity ...

  10. Sphinx 匹配模式

    所谓匹配模式就是用户如何根据关键字在索引库中查找相关的记录. SPH_MATCH_ALL, 匹配所有查询分词(默认模式); 如“手机配件”,不匹配 “我有一部手机”,但可以匹配 “手机坏了,需要找配件 ...