您的位置:首页 > 其它

(15)字典操作

2016-03-03 17:50 387 查看
* 字典概述:
# 可变的,像列表一样元素是可变的
# 可以存任何对像,也和列表一样每一个元素可以是不同的对象
数量和列表一样,没有限制
# 采用 key:value 方式存数据
# 又名“关联数组”或“哈希表”

* 常规操作
# 创建字典
@方法一:
>>> mydict={}
>>> type(mydict)
Out[17]: dict
>>> mydict
Out[18]: {}

>>> mydict ={"name":"toby","sex":"male"}
>>> type(mydict)
Out[20]: dict
>>> mydict
Out[21]: {'name': 'toby', 'sex': 'male'}

>>> mydict={}
>>> mydict['name']="toby"
>>> mydict['sex']="male"
>>> mydict
Out[28]: {'name': 'toby', 'sex': 'male'}

>>> mydict['name']=['tom',"john","jim"]
>>> mydict
Out[30]: {'name': ['tom', 'john', 'jim'], 'sex': 'male'}

@方法二:
从其它数据来创建
>>> name=(['first',"google"],["second","baidu"]) #元组
>>> mydict=dict(name)
>>> mydict
Out[35]: {'first': 'google', 'second': 'baidu'}

>>> mydict=dict(first="google",second="baidu") #构造方法
>>> mydict
Out[68]: {'first': 'google', 'second': 'baidu'}

>>> mydict=dict(zip(('first',"second"),("google","baidu"))) #列表
>>> mydict
Out[79]: {'first': 'google', 'second': 'baidu'}

>>> name=[['first',"google"],["second","baidu"]] #列表
>>> mydict=dict(name)
>>> mydict
Out[53]: {'first': 'google', 'second': 'baidu'}

>>> name={'first':"google","second":"baidu"} #字典
>>> mydict=dict(name)
>>> mydict
Out[61]: {'first': 'google', 'second': 'baidu'}

@方法三
采用fromkeys
>>> mydict={}.fromkeys(("third","forth"),("yahoo"))
>>> mydict
Out[42]: {'forth': 'yahoo', 'third': 'yahoo'}

# 访问字典
>>> mydict
Out[87]: {'first': 'google', 'second': 'baidu'}
>>> mydict['first']
Out[88]: 'google'

>>> mydict.get('first')
Out[91]: 'google'
用get方法,没有的key,不会报错,返回null

>>> mydict
Out[110]: {'first': 'sina', 'second': 'baidu'}
>>> len(mydict)
Out[111]: 2
得到字典的元素数量

>>> mydict
Out[99]: {'first': 'sina', 'second': 'baidu'}
>>> mydict.keys()
Out[100]: ['second', 'first']
得到所有 key列表

>>> mydict.values()
Out[101]: ['baidu', 'sina']
得到所有 value 列表

>>> mydict.items()
Out[106]: [('second', 'baidu'), ('first', 'sina')]
得到 key value

# 遍历
>>> for item in mydict:
... print item
...
second
first
得到是key

>>> for item in mydict.values():
... print item
...
baidu
sina
得到value

>>> for item in mydict:
... print str(item)+":"+mydict[item]+" "
...
second:baidu
first:sina
得到 key 和 value

>>> for (key,value) in mydict.items():
... print str(key)+":" +str(value)
...
second:baidu
first:sina
得到 key 和 value

>>> for(key,value) in mydict.iteritems():
... print str(key)+":" +str(value)
...
second:baidu
first:sina

注:items()返回的是列表对象,而iteritems()返回的是迭代器对象
两者的用法差不多,但iteritems()的性能更快

# 修改字典
>>> mydict['first']="sina"
>>> mydict
Out[95]: {'first': 'sina', 'second': 'baidu'}

# 删除
>>> mydict
Out[114]: {'first': 'sina', 'second': 'baidu'}
>>> mydict.pop('second')
Out[115]: 'baidu'
>>> mydict
Out[116]: {'first': 'sina'}
对象方法删除

>>> mydict
Out[118]: {'first': 'sina', 'second': 'baidu'}
>>> del(mydict['second'])
>>> mydict
Out[120]: {'first': 'sina'}
用系统函数del

# 合并
>>> mydict
Out[125]: {'first': 'sina'}
>>> mydict2
Out[126]: {'third': 'yahoo'}
>>> mydict.update(mydict2)
>>> mydict
Out[128]: {'first': 'sina', 'third': 'yahoo'}
>>> mydict2
Out[130]: {'third': 'yahoo'}
第一个得到合并,第二个字典没有影响

* 查字典的帮助文档
dir(dict) help(dict.xxx) xxx具体的方法名

打开字典对象文档 print dict.__doc__
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: