1.创建新字典(根据语法和dict初始化方法)

>>> my_dict={'a':1,'b':2,'c':3}
>>> my_dict=dict({'a':1,'b':2,'c':3})
>>> mydcit=dict(a=1,b=2,c=3)
>>> mydict=dict([('a',1),('b',2),('c',3)])
>>> mydict=dict(zip(['a','b','c'],[1,2,3]))

2. 创建字典(根据dict的内置函数)

  2.1 从sequence里取得keys,创建dict

>>> a=['a','b','c']
>>> mydict=dict.fromkeys(a,1)
>>> mydict
{'a': 1, 'c': 1, 'b': 1}

3.更新字典

d[key] = value:直接改变key对应的value,如果不存在该key,该字典中创建一个key,value的元素。

>>> mydict
{'a': 1, 'c': 1, 'b': 1}
>>> mydict['a']=2
>>> mydict
{'a': 2, 'c': 1, 'b': 1}
>>> mydict['d']=4
>>> mydict
{'a': 2, 'c': 1, 'b': 1, 'd': 4}

setdefault(key[, default]):如果存在key,那么就返回该key对应的value,否则该字典中创建一个key,value的元素。并返回default值

>>> mydict.setdefault('a',3)
2
>>> mydict
{'a': 2, 'c': 1, 'b': 1, 'd': 4}
>>> mydict.setdefault('e',5)
5
>>> mydict
{'a': 2, 'c': 1, 'b': 1, 'e': 5, 'd': 4}

update([other]):从其他dict更新字典。

>>> mydict
{'a': 2, 'c': 1, 'b': 1, 'e': 5, 'd': 4}
>>> mydcit
{'a': 1, 'c': 3, 'b': 2}
>>> mydict.update(mydcit)
>>> mydict
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4}
>>> mydcit['f']=6
>>> mydict.update(mydcit)
>>> mydict
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'f': 6}

3.判断key是否在字典中

key in dict 与 dict.has_key()等价。或者返回keys()来判断。

>>> mydict
{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4, 'f': 6}
>>>
>>> 'a' in mydict
True
>>> mydict.has_key('a')
True
>>> 'a' in mydict.keys()
True

4.删除元素

  4.1 删除指定key的元素。

pop(key[, default])

If key is in the dictionary, remove it and return its value, else return default. If default is not given and key is not in the dictionary, a KeyError is raised.

>>> mydict.pop('a',3)
1
>>> mydict.pop('g',3)
3

>>> mydict
{'b': 2, 'e': 5, 'd': 4, 'f': 6}
>>> del mydict['d']
>>> mydict
{'b': 2, 'e': 5, 'f': 6}

  4.2任意删除一个item

popitem()

Remove and return an arbitrary (key, value) pair from the dictionary.

popitem() is useful to destructively iterate over a dictionary, as often used in set algorithms. If the dictionary is empty, calling popitem() raises a KeyError.

>>> mydict.popitem()
('c', 3)
5. iter(d) 

Return an iterator over the keys of the dictionary. This is a shortcut for iterkeys().

>>> mydict
{'b': 2, 'e': 5, 'f': 6}
>>> mydict_iter=iter(mydict)
>>> mydict_iter
<dictionary-keyiterator object at 0x7fc1c20db578>
>>> mydict_iter.next()
'b'

6.得到指定key的value

  

>>> mydict
{'b': 2, 'e': 5, 'f': 6}
>>> mydict['b']
2
>>> mydict.get('b',4)
2

[('b', 2), ('e', 5), ('f', 6)]
>>> for i in mydict:
... print i
...
b
e
f

6.字典的shallow copy 与 deep copy

浅copy。

如果key对应的alue是整型,更改了之后,两个dict key对应的alues就是不一样的

如果key对应的seuece类型,更改了之后,两个dict key 对应的alues是一样的。

因为如果是整形,指向的object的引用发生了变化。

而sequence对应的引用是不会发生变化的

[('b', 2), ('e', 5), ('f', 6)]>>> for i in mydict:...     print i... bef

dict的更多相关文章

  1. tuple放入dict中

    tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...

  2. redis数据结构存储Dict设计细节(redis的设计与实现笔记)

    说到redis的Dict(字典),虽说算法上跟市面上一般的Dict实现没有什么区别,但是redis的Dict有2个特殊的地方那就是它的rehash(重新散列)和它的字典节点单向链表. 以下是dict用 ...

  3. python list dict 去重的两种方式

    def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item ...

  4. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  5. python dict clear只能删除一层,不能够递归删除。

    void PyDict_Clear(PyObject *op) { dictobject *mp; dictentry *ep, *table; int table_is_malloced; Py_s ...

  6. Python中内置数据类型list,tuple,dict,set的区别和用法

    Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...

  7. python第一天 - dict

    dict key-value集合. d = { ': 'a', ': 'b', ': 'c' } (一).获取集合长度:len(d) = 3(二).获取值: 方式一:d[key];例:d['1'] = ...

  8. python利用dict模拟switch

    pytho本身并未提供switch语句,但可以通过dict来模拟switch, #方法1 def add(x,y): return x+y def dec(x,y): return x-y def m ...

  9. python-list tuple dict set

    1:删除一个列表末尾的元素 pop方法 >>> a [1, 'Jack', 2, 3, 2] >>> a.pop() >>> a [1, 'Jac ...

  10. python基础之dict、set及字符

    python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...

随机推荐

  1. Java在JFinal中出现Can not create instance of class: com.keesail.web.config.WebConfig异常处理方式

    编译的时候一直出现如下问题: 后面 查了许多资料 说是build项目的时候web.xml没有输出到class目录.后面试了很多方式不行.后面自己摸索出如下方式解决问题: 改成默认输出目录.

  2. Sort Characters By Frequency

    Given a string, sort it in decreasing order based on the frequency of characters. Example 1: Input: ...

  3. sudo: /etc/sudoers is world writable

    错误信息: sudo: /etc/sudoers is world writable sudo: no valid sudoers sources found, quitting 解决办法: 修复磁盘 ...

  4. 数据结构《21》----2014 WAP 初试题----Immutable queue

    2014 WAP初试题----实现一个不可变的队列: 看似很简单..实则,不同的版本效率的差距可能是巨大的..甚至难以想象.. 之前用STL库的queue进行了对比,差别非常大.. 用上一篇文章的im ...

  5. mysql5.7 zip版的配置方法

    下载了最新版的mysql,发现配置后使用net start mysql 服务无法启动,花了点时间找到了解决方案,按照如下步骤就可以了,关键在于创建data文件夹以及mysqld --initializ ...

  6. ES5 对数组方法的扩展 以及 正则表达式

    ES5 对数组的扩展 forEach map some every indexOf lastIndexOf forEach 与 map 语法: 数组.forEach(function ( v, i ) ...

  7. Jquery和Javascript 实际项目中写法基础-弹出窗和弹出层 (4)

     一.实际项目中有很多如下界面效果.    二.该效果可以归结为弹出窗或者弹出层来实现的,为什么这么说?看如下代码:      <!DOCTYPE html> <html> & ...

  8. UIView---汇总

    视图.绘图.贴图.手势.变形.布局.动画.动力.特效 UIBezierPath.UIGestureRecognizer.CGAffineTransform.frame.bounds.center.tr ...

  9. 【JS】键盘鼠标事件

    一,键盘 keydown 表示按下键盘 keypress 表示按下键盘 keyup 表示键盘弹起 这三者的区别分别表现在发生的 先后顺序,获取到的键盘按钮值,已经对输入框的文本取值这三方面 先后顺序: ...

  10. ThinkPHP 3.2 获取页面运行时间

    在ThinkPHP中,可以通过在config.php中配置'SHOW_PAGE_TRACE' =>true,打开页面调试,实现页面载入时间的显示.但显示在页面右下角TP的LOGO显然不能适用于我 ...