dict
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, callingpopitem()raises aKeyError. -
>>> 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的更多相关文章
- tuple放入dict中
tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...
- redis数据结构存储Dict设计细节(redis的设计与实现笔记)
说到redis的Dict(字典),虽说算法上跟市面上一般的Dict实现没有什么区别,但是redis的Dict有2个特殊的地方那就是它的rehash(重新散列)和它的字典节点单向链表. 以下是dict用 ...
- python list dict 去重的两种方式
def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item ...
- list,tuple,dict,set常用方法
Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...
- python dict clear只能删除一层,不能够递归删除。
void PyDict_Clear(PyObject *op) { dictobject *mp; dictentry *ep, *table; int table_is_malloced; Py_s ...
- Python中内置数据类型list,tuple,dict,set的区别和用法
Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...
- python第一天 - dict
dict key-value集合. d = { ': 'a', ': 'b', ': 'c' } (一).获取集合长度:len(d) = 3(二).获取值: 方式一:d[key];例:d['1'] = ...
- python利用dict模拟switch
pytho本身并未提供switch语句,但可以通过dict来模拟switch, #方法1 def add(x,y): return x+y def dec(x,y): return x-y def m ...
- python-list tuple dict set
1:删除一个列表末尾的元素 pop方法 >>> a [1, 'Jack', 2, 3, 2] >>> a.pop() >>> a [1, 'Jac ...
- python基础之dict、set及字符
python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...
随机推荐
- 【转】MyEclipse开发Web项目发布到Tomcat下的Root目录
通常情况下,Web项目是发布到Tomcat下的webapps文件目录下的 .以至于我们访问的时候: 例如:Web应用项目名称为:webManager,则部署到tomcat后,是部署在tomcat/we ...
- Java特性-动态代理
代理在开发中无处不在: 我们完成一个接口开发A,接口下有很多个实现类,这些类有些共同要处理的部分,比如每一个类都定义了接口A中的方法getXX(String name).我现在想把每次调用某个实现类的 ...
- Python 中的数据结构总结(一)
Python 中的数据结构 “数据结构”这个词大家肯定都不陌生,高级程序语言有两个核心,一个是算法,另一个就是数据结构.不管是c语言系列中的数组.链表.树和图,还是java中的各种map,随便抽出一个 ...
- Xcode下搭建opencv环境碰到的一些问题
写了一学期py-opencv了都快结束了突然又要折腾起c++下来,真实给自己跪了,不过环境基本都搞定了,中间碰到了一些问题这里总结一下: usr/local/include和usr/local/lib ...
- css width height
css 中body 的默认宽度是100%,但是默认高度为0px
- u-boot链接脚本分析
eclipse 64位下载地址:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release ...
- 如何开发、调试Hybrid项目-- 入门篇
前言 随着移动浪潮的兴起,各种APP层出不穷,极速的业务扩展提升了团队对开发效率的要求,这个时候使用IOS&Andriod开发一个APP似乎成本有点过高了,而H5的低成本.高效率.跨平台等特性 ...
- 2.ViewBag、ViewData、TempData之间的区别
1.ViewBag and ViewData(非跨视图访问) 1)ViewBag是一种dynamic动态类型,用户可以自定义属性并为其赋值,它会在运行时动态解析(例:可以作为变量.数组等各种对象传递并 ...
- .net 过滤特殊字符
/// <summary> /// 过滤标记 /// </summary> /// <param name="NoHTML">包括HTML,脚本 ...
- System Sounds: Alerts and Sound Effects
#include <AudioToolbox/AudioToolbox.h> #include <CoreFoundation/CoreFoundation.h> // Def ...