Python—字典的操作

字典的操作:

#字典的本质其实是dict类的对象
>>> a = dict([("a","")])
>>> a
{'a': ''}

一.增加

 >>> student_num = {"stu1101": "阿橙", "stu1102": "阿万", "stu1103": "阿朝", "stu1104": "peter1",}
>>> student_num["stu1105"] = "zebra" #增加
>>> print(student_num)
{'stu1101': '阿橙', 'stu1102': '阿万', 'stu1103': '阿朝', 'stu1104': 'peter1', 'stu1105': 'zebra'}
>>>

二.修改

 >>> student_num = {"stu1101": "阿橙", "stu1102": "阿万", "stu1103": "阿朝", "stu1104": "peter1",}
2 >>> student_num["stu1101"] = "gkx" #修改
>>> student_num
{'stu1101': 'gkx', 'stu1102': '阿万', 'stu1103': '阿朝', 'stu1104': 'peter1', 'stu1105': 'zebra'}

三.删除

 >>> #删除
2 >>> student_num.pop("stu1104") #标准删除方法
'peter1'
>>> student_num
{'stu1101': 'gkx', 'stu1102': '阿万', 'stu1103': '阿朝', 'stu1105': 'zebra'}
>>>
>>>
8 >>> del student_num["stu1105"]
>>> student_num
{'stu1101': 'gkx', 'stu1102': '阿万', 'stu1103': '阿朝'}
>>> #ptyhon内置的删除方法
>>>
13 >>> student_num.popitem() #随机删除
('stu1103', '阿朝')
>>> student_num
{'stu1101': 'gkx', 'stu1102': '阿万'}
>>>

四.查找

 >>> #查找
>>> zoo = {"a101":"zebra","b202":"chimpanzee","c303":"lion"}
3 >>> "a101" in zoo #判断字典中key是否在dict中
True
>>>
6 >>> zoo["a101"]
'zebra'
>>> #用key来查找value,不过当key不在该dict中时,会报错
>>>
10 >>> zoo.get("d404")
>>> print(zoo.get("d404"))
None
>>> print(zoo.get("c303"))
lion
>>> #用.get的方法,找不到不会报错,建议使用

五.字典的循环和自动生成


  >>> zoo.values()  #打印所有value
  dict_values(['zebra', 'chimpanzee', 'lion'])
  >>> zoo.keys()    #打印所有key
  dict_keys(['a101', 'b202', 'c303'])

 >>> zoo2
{'c303': 'lion', 'd404': 'elephant', 'c4': 'tiger'}
3 >>> for key in zoo2: #打印key和value
print(key,zoo2[key]) >>>
c303 lion
d404 elephant
c4 tiger
>>> 12 >>> for k,v in zoo2.items(): #数据量大时不要用
print(k,v) >>>
c303 lion
d404 elephant
c4 tiger
>>> 21 >>> c = dict.fromkeys([1,2,3],[4,5,6]) #位置1是key,位置2不管写啥都是values,不过若位置2为[4:{"name":"6"}],生成的字典,若修改其中一个[4:{"name":"6"}]字典里的值,其他value也都会一起改,
类似浅copy

print(c)
{1: [4,5,6], 2: [4,5,6], 3: [4,5,6]}

六.字典的其他操作

 >>> #setdefault
>>> zoo2 = {"a101":"zebra","b202":"chimpanzee","c303":"lion"}
3 >>> zoo2.setdefault("a101","cat") #setdefault 判断key是否在dict中,若在则不做修改,若不在则将新key添加至dict中
'zebra'
>>> zoo2
{'a101': 'zebra', 'b202': 'chimpanzee', 'c303': 'lion'}
7 >>> zoo2.setdefault("d404","elephant")
'elephant'
>>> zoo2
{'a101': 'zebra', 'b202': 'chimpanzee', 'c303': 'lion', 'd404': 'elephant'}
>>> >>> zoo2
{'c303': 'lion', 'd404': 'elephant'}
>>> dict_b = {1:2,2:3,"c4":"tiger"}
16 >>> zoo2.update(dict_b) #类似列表中的extend,若 dict_b中有和zoo2交叉的key,会更新为dict_b中的valu
>>> zoo2
{'c303': 'lion', 'd404': 'elephant', 1: 2, 2: 3, 'c4': 'tiger'} >>> #items
21 >>> zoo2.items() #将字典中的key、value值对,一对对拿出,生成为新列表
dict_items([('c303', 'lion'), ('d404', 'elephant'), (1, 2), (2, 3), ('c4', 'tiger')])
>>>

 字典的方法有:fromkeys , pop , popitem , setdefault , clear , copy , keys , values , items , update , get

字典只能存字符串或者二进制:

如果想存其他格式的,要用str() 强制转换一下

 

上一篇:【转】MFC WM_CTLCOLOR 消息


下一篇:python 字典相关操作