'''
1.字典的格式化字符串在转换说明符%后面加上键(圆括号括起来);
'''
phonebook={"A":'45',"B":"56"}
s="A's phone number is %(A)s."
print(s%phonebook)
运行结果:
#字典方法:
#clear():清楚字典中的所有的项,为原地操作,无返回值;
d={}
d['name']='TXT'
d['age']='42'
print(d)
print(d.clear())
print(d)#区别下面的用法:
x={}
y=x
x['key']='value'
print(y)
x={}
print(y)x1={}
y1=x1
x1['key']='value'
print(y1)
x1.clear()
print(y1)
#y最后没被清空,但是y1被清空了,即想清楚原始字典中的元素,需使用clear()方法#copy():返回一个具有相同项的新字典,为浅复制,不是副本;
x={"a":"A","b":['s','S']}
y=x.copy()
print(x)
print(y)
y['a']='C'
y['b'].remove('s')
print(x)
print(y)
#注意: 当在副本中替换值时,原始字典不受影响,但如果原地修改了某个值,原字典也会改变#deepcopy():赋值原字典中所包含的所有值,为深复制,位于模块copy中;
from copy import deepcopy
d={}
d['A']='a'
d['B']='b'
dc=deepcopy(d)
print(d)
print(dc)
d['B']="c"
print(d)
print(dc)#fromkeys():使用给定的键创建字典,键对应的值默认为None,也可以提供默认值;
key=['name','age']
print({}.fromkeys(key))
print(dict.fromkeys(key))
print(dict.fromkeys(key,'unknown'))#get():访问字典项,访问不存在的键时返回None
s={'A':'a','B':'b'}
print(s.get('A'))
print(s.get("C"))
print(s.get('C','c'))#定义了默认值#has_key():检查字典中是否含有某个键,有些版本不包含这个函数,与in作用相同;
s={'A':'a','B':'b'}
print('A' in s)#items:将字典所用的项以列表的方式方式返回,项表示为(键,值)形式;
#iteritems:作用同item,但时iteritems返回一个迭代器;
d={'A':'a','B':'b'}
print(d.items())#keys(),iterkeys():前者将键以列表的形式返回,后者返回键的迭代器;
#values(),itervalues:,操作值,用法同上;
print(d.keys())
print(d.values())#pop():返回对应键的值,然后移除该键-值对;
print(d.pop("A"))
print(d)#popitem():返回随机弹出字典的项,字典中删除该项,字典中没有顺序的概念;
d={"a":"A","b":"B","c":"C"}
print(d.popitem())
print(d)#setdefault:类似get,获得给定键的值;若不含有该键,返回None,且在字典中添加改键
#若不含有该键对应的值,可以设定该值,存在该值时不设定;
d={"age":'45'}
print(d.setdefault('name',"TxT"))
print(d.setdefault('age',"12"))
print(d.setdefault('addr'))
print(d)#update():用一个字典更新另一个字典,提供的新项会添加到旧字典,若键存在,则更新其值
x={"A":"a"}
y={"B":'b',"A":"c"}
x.update(y)
print(x)
#clear():清楚字典中的所有的项,为原地操作,无返回值;
d={}
d['name']='TXT'
d['age']='42'
print(d)
print(d.clear())
print(d)#区别下面的用法:
x={}
y=x
x['key']='value'
print(y)
x={}
print(y)x1={}
y1=x1
x1['key']='value'
print(y1)
x1.clear()
print(y1)
#y最后没被清空,但是y1被清空了,即想清楚原始字典中的元素,需使用clear()方法#copy():返回一个具有相同项的新字典,为浅复制,不是副本;
x={"a":"A","b":['s','S']}
y=x.copy()
print(x)
print(y)
y['a']='C'
y['b'].remove('s')
print(x)
print(y)
#注意: 当在副本中替换值时,原始字典不受影响,但如果原地修改了某个值,原字典也会改变#deepcopy():赋值原字典中所包含的所有值,为深复制,位于模块copy中;
from copy import deepcopy
d={}
d['A']='a'
d['B']='b'
dc=deepcopy(d)
print(d)
print(dc)
d['B']="c"
print(d)
print(dc)#fromkeys():使用给定的键创建字典,键对应的值默认为None,也可以提供默认值;
key=['name','age']
print({}.fromkeys(key))
print(dict.fromkeys(key))
print(dict.fromkeys(key,'unknown'))#get():访问字典项,访问不存在的键时返回None
s={'A':'a','B':'b'}
print(s.get('A'))
print(s.get("C"))
print(s.get('C','c'))#定义了默认值#has_key():检查字典中是否含有某个键,有些版本不包含这个函数,与in作用相同;
s={'A':'a','B':'b'}
print('A' in s)#items:将字典所用的项以列表的方式方式返回,项表示为(键,值)形式;
#iteritems:作用同item,但时iteritems返回一个迭代器;
d={'A':'a','B':'b'}
print(d.items())#keys(),iterkeys():前者将键以列表的形式返回,后者返回键的迭代器;
#values(),itervalues:,操作值,用法同上;
print(d.keys())
print(d.values())#pop():返回对应键的值,然后移除该键-值对;
print(d.pop("A"))
print(d)#popitem():返回随机弹出字典的项,字典中删除该项,字典中没有顺序的概念;
d={"a":"A","b":"B","c":"C"}
print(d.popitem())
print(d)#setdefault:类似get,获得给定键的值;若不含有该键,返回None,且在字典中添加改键
#若不含有该键对应的值,可以设定该值,存在该值时不设定;
d={"age":'45'}
print(d.setdefault('name',"TxT"))
print(d.setdefault('age',"12"))
print(d.setdefault('addr'))
print(d)#update():用一个字典更新另一个字典,提供的新项会添加到旧字典,若键存在,则更新其值
x={"A":"a"}
y={"B":'b',"A":"c"}
x.update(y)
print(x)
运行结果: