Python 2.7.11 字典操作

#coding=utf-8
# DictMappingOperation.py
# 1. 创建字典
phonebook={'Alice':'2341', 'Beth':'9120', 'Cecil':'3248'}
print phonebook
items=[('name','rong'),('age',24)]#使用键值对序列
d=dict(items)
print d
d2=dict(name='rong',age=42)#使用关键字

print d2
# 2. 格式化输出
print "Alice's phone num is %(Alice)s"%phonebook

# 3. 字典的方法
# clear(), in-place
d2=dict(name='rong',age=42)#使用关键字
d3=d2
d2.clear()
print d2 #{}
print d3 #{},=赋值,二者指向同一个字典
# copy(), 返回新字典,浅复制
##1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
##2. copy.deepcopy 深拷贝 拷贝对象及其子对象
d2=dict(name='rong',age=42)#使用关键字
d3=d2.copy()#分别指向两个字典
d2.clear()
print d3# d3不为空
# deepcopy(),深复制
##1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
##2. copy.deepcopy 深拷贝 拷贝对象及其子对象
from copy import deepcopy
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':4567}
y=x.copy()
y['username']='mlh'#替换,产生新的对象
y['machines'].remove('bar')#原址修改,引用不变,但对象变了
y['age']=44#替换,产生新的对象
del y['phone']
print 'x:',x
print 'y:',y
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':4567}
z=deepcopy(x)
z['username']='mlh'
z['machines'].remove('bar')
z['age']=44
del z['phone']
print 'x:',x
print 'z:',z

# 3. fromkeys, 建新字典
print {}.fromkeys(['name','age'])
print dict.fromkeys(['name','age'],'(Unknown)')

# 4.get
d={}
#print d['name']#error!!!
print d.get('name')#None

# 5. has_key, return true or false
print d.has_key('name')

# 6. items iteritems
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':4567}
print x.items()
print x.iteritems()# return iterator of items
print list(x.iteritems()) # make a list

# 7. keys iterkeys
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':4567}
print x.keys()
print x.iterkeys()# return iterator of keys
print list(x.iterkeys()) # make a list

# 8. pop, pop the item of input key, in-place
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':4567}
print x.pop('age')# return value of the key
print x

# 9. popitem, in-place
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':4567}
print x.popitem()# return the poped item
print x.popitem()# return the poped item

# 10. setdefault
# key存在,返回value;key不存在,添加item,并设定默认值
d={}
d.setdefault('name','N/A')
print d
d['name']='Gooo'
print d.setdefault('name','N/A')
print d

# 11. update
# 使用另一个字典(右)更新当前字典(左)
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':4567}
y={'username':'mlh'}
x.update(y)
print y
print x

# 12. values itervalues
x={'username':'admin','machines':['foo','bar','baz'],'age':22,'phone':22}
print x.values()# 返回values,允许重复
print x.itervalues()# 返回iterator of values
print list(x.itervalues())# make a list of values
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值