####字典###定义 dic = {key1:value1,key2:value2} dic = dict(可迭代键值对),其中注意key的写法
dic1 ={"name":"agsol","age":16,"gender":"male"}
dic2 =dict(name="james", age=39)print("dic1:{}".format(dic1))print("dic2:{}".format(dic2))###方法##增# d[key]=value 若key存在,更新value的值,若key不存在,添加键值对
dic2["gender"]="male"print("dic2[\"gender\"]=\"male\":{}".format(dic2))# d.update([otherdict]) 将otherdict中的键值对添加到d中,key重复的覆盖value值,key不存在添加键值对
dic3 ={"english":100,"math":150}
dic1.update(dic3)print("dic1.update(dic3):{}".format(dic1))##删# d.pop(key[,default]) key存在,返回对应value,并移除键值对;key不存在,返回default
english = dic1.pop("english")print("dic1.pop(\"english\"):{},english:{}".format(dic1, english))# d.popitem() 移除并返回任意一个键值对,对空字典使用,会抛KeyError异常
rkey, rvalue = dic1.popitem()print("dic1.popitem():{},rkey:{},rvalue:{}".format(dic1, rkey, rvalue))##改##查# dic = d[key] 按key访问,key不存在抛 KeyError异常print("dic1[\"name\"]:{}".format(dic1["name"]))# dic = d.get(key[,default]) 按key访问,key不存在返回缺省值,默认缺省值Noneprint("dic1.get(\"name\",\"Tom\"):{}".format(dic1.get("name","Tom")))print("dic1.get(\"xyz\",\"Tom\"):{}".format(dic1.get("xyz","Tom")))# dic = d.setdefault(key[,default]) 按key访问,key不存在添加键值对,并返回value值为default,default默认None,若key存在,不改变对应valueprint("dic2.setdefault(\"gender\",\"male\"):{}".format(dic2.setdefault("gender","male")))print("dic2:{}".format(dic2))##遍历# 遍历keyprint("~~~key~~~")for i in dic1:print(i, dic1[i])# 遍历valueprint("~~~value~~~")for i in dic1.values():print(i)# 遍历itemprint("~~~items~~~")for k, v in dic1.items():print(k, v)###补充# 可变,无序,不可哈希# 有序字典, 需要使用collections包import collections
dic = collections.OrderedDict()
dic["a"]="A"
dic["b"]="B"
dic["c"]="C"
dic["d"]="D"print("~~~collections.OrderedDict()~~~")for k, v in dic.items():print(k, v)-----------------------------------------
dic1:{'name':'agsol','age':16,'gender':'male'}
dic2:{'name':'james','age':39}
dic2["gender"]="male":{'name':'james','age':39,'gender':'male'}
dic1.update(dic3):{'name':'agsol','age':16,'gender':'male','english':100,'math':150}
dic1.pop("english"):{'name':'agsol','age':16,'gender':'male','math':150},english:100
dic1.popitem():{'name':'agsol','age':16,'gender':'male'},rkey:math,rvalue:150
dic1["name"]:agsol
dic1.get("name","Tom"):agsol
dic1.get("xyz","Tom"):Tom
dic2.setdefault("gender","male"):male
dic2:{'name':'james','age':39,'gender':'male'}~~~key~~~
name agsol
age 16
gender male
~~~value~~~
agsol
16
male
~~~items~~~
name agsol
age 16
gender male
~~~collections.OrderedDict()~~~
a A
b B
c C
d D