dict全称dictionary,使用键-值(key-value)存储,有极快的查找速度。

以下整理几种常用的dict用法

定义

空dict

>>> dict={}

普通dict

>>> dict={'adele':'hello','taylor':''}
>>> dict
{'taylor': '', 'adele': 'hello'}

嵌套

>>> a_dict={1:"{11:'a',12:'b'}",2:"2B",3:"3C"}
>>> a_dict
{1: "{11:'a',12:'b'}", 2: '2B', 3: '3C'}
>>> a_dict[1][12]
'b'

获取键、值

key&values

>>> a_dict.keys()
[1, 2, 3] #结果为list

>>> a_dict.values()
["{11:'a',12:'b'}", '2B', '3C']

items

>>> a_dict.items()
[(1, "{11:'a',12:'b'}"), (2, '2B'), (3, '3C')] #结果为list,list里面的元素是元组

for..in

>>> for key in a_dict:
... print (key)
...
1
2
3

>>> for value in a_dict.values():
... print(value)
...
{11:'a',12:'b'}
2B
3C

  输出value等价语句

>>> for key in  a_dict:
... print a_dict[key]
...
{11:'a',12:'b'}
2B
3C

同时输出键、值

两种方法:

1)使用两个变量k,v,完成循环

2)使用一个变量k,通过k求出对应v

>>> for k,v in a_dict.items():
... print str(k)+":"+str(v)
...
1:{11:'a',12:'b'}
2:2B
3:3C >>> for k in a_dict:
... print str(k)+":"+str(a_dict[k])
...
1:{11:'a',12:'b'}
2:2B
3:3C

  另一种实现形式

>>> for k in a_dict:
... print "a_dict(%s)="%k,a_dict[k]
...
a_dict(1)= {11:'a',12:'b'}
a_dict(2)= 2B
a_dict(3)= 3C

get

>>> a_dict.get(1)
"{11:'a',12:'b'}"

删除

分别使用了三种方法:pop、del和clear

>>> a_dict.pop('taylor')
'' #根据键值删除,并返回值

>>> del a_dict[1]
>>> a_dict
{2: '2B', 3: '3C', 'adele': 'hello'} >>> a_dict.clear()
>>> a_dict
{}

拷贝

>>> new_dict=a_dict.copy()
>>> new_dict
{1: "{11:'a',12:'b'}", 2: '2B', 3: '3C'}

合并

>>> add_dict={'adele':'hello','taylor':''}
>>> a_dict.update(add_dict)
>>> a_dict
{1: "{11:'a',12:'b'}", 2: '2B', 3: '3C', 'adele': 'hello', 'taylor': ''}

排序

按照key排序

>>> print sorted(a_dict.items(),key=lambda d:d[0])
[(1, "{11:'a',12:'b'}"), (2, '2B'), (3, '3C')]

按照value排序

>>> print sorted(a_dict.items(),key=lambda d:d[1])
[(2, '2B'), (3, '3C'), (1, "{11:'a',12:'b'}")]

后续使用中,再补充..

Python:dict用法的更多相关文章

  1. Python Dict用法

    Operation Result len(a) the number of items in a 得到字典中元素的个数 a[k] the item of a with key k 取得键K所对应的值 ...

  2. Python高级用法总结

    Python很棒,它有很多高级用法值得细细思索,学习使用.本文将根据日常使用,总结介绍Python的一组高级特性,包括:列表推导式.迭代器和生成器.装饰器. 列表推导(list comprehensi ...

  3. Python dict operation introduce

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

  4. python argparse用法总结

    转:python argparse用法总结 1. argparse介绍 argparse是python的一个命令行解析包,非常适合用来编写可读性非常好的程序. 2. 基本用法 prog.py是我在li ...

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

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

  6. Anaconda下载及安装及查看安装的Python库用法

    Anaconda下载及安装及查看安装的Python库用法 Anaconda 是一个用于科学计算的 Python 发行版,提供了包管理与环境管理的功能.Anaconda 利用 conda 来进行 pac ...

  7. python enumerate用法总结【转】

    enumerate()说明 enumerate()是python的内置函数 enumerate在字典上是枚举.列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enum ...

  8. python & dict & switch

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

  9. Python dict() 函数

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

随机推荐

  1. vue 导航钩子

    导航钩子 (译者:『导航』表示路由正在发生改变.) 正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消.有多种方式可以在路由导航发生时执行钩子:全局的, 单个路由独享的 ...

  2. java获取两个时间的相隔时间,包括年、月、日、时、分、秒

    public static final int YEAR_RETURN = 0;                    public static final int MONTH_RETURN = 1 ...

  3. libevent源码分析:hello-world例子

    hello-world是libevent自带的一个例子,这个例子的作用是启动后监听一个端口,对于所有通过这个端口连接上服务器的程序发送一段字符:hello-world,然后关闭连接. /* * gcc ...

  4. 两个NetSuite之间历史交易数据迁移的具体方案

    背景与展望: 比如:公司要上市往往会要求提供过去几年的营业数据和报表等信息, 而这些信息来源于正在一直运营使用的ERP和财务系统是最可靠与真实的. NetSuite实现的ERP和财务系统的完美结合,随 ...

  5. C++多线程の线程通信future,promise,async

  6. Duilib改进窗口拖动,使整个窗口都能拖动两种方法(转载)

    转载:http://www.cnblogs.com/XiHua/articles/3490490.html 转载:http://blog.csdn.net/lostspeed/article/deta ...

  7. 复旦大学2015--2016学年第一学期(15级)高等代数I期末考试第八大题解答

    八.(本题10分)  设 $V$ 为数域 $K$ 上的 $n$ 维线性空间, $\varphi$ 为 $V$ 上的线性变换. 子空间 $C(\varphi,\alpha)=L(\alpha,\varp ...

  8. javascript回文和类名的检测方法

    回文**           //"123"变为"123321" //"abc321"变为"abcd321123cba" ...

  9. 关于欧几里得算法求最大公约数,即OJ1029的参考解法

    #include <stdio.h> int main(int argc, char *argv[]) { int a,b,c; scanf("%d %d",& ...

  10. 命名空间$.fn

    $.fn.xxx是可以用对象来调用的命名空间,例如 $.fn.input() 在声明时就可以用 $('abc').input()    $.fx是指jquery的特效. 如果使用显示.滑动.淡入淡出. ...