这篇文章主要是写python的重要的一个数据类型字典。
python字典通过键-值组成的,官方书籍称之为键值(key:value)对,每个键值用冒号(:)分割,每个键值对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
>>> dict = {'TOM':21,"Jerry":20,"Alice":21}
>>> dict
{'TOM': 21, 'Jerry': 20, 'Alice': 21}
>>> type(dict)
<class 'dict'>
>>>
Python字典定义上边已经讲了,接下来说一说字典的增删改查。
Python字典新增key-value
>>> dict
{'TOM': 21, 'Jerry': 20, 'Alice': 21}
>>>
>>> dict["Obma"]=50 # 字典中键若果不存在新增,如果存在修改。
>>> dict
{'TOM': 21, 'Jerry': 20, 'Alice': 21, 'Obma': 50}
>>>
>>> dict.setdefault("Eliza",30) #该方法能够返回键的值,可以避免该键值对覆盖已存在的键值对。
30
>>> dict
{'TOM': 21, 'Jerry': 20, 'Alice': 21, 'Obma': 50, 'Eliza': 30}
>>> dict.setdefault("Eliza",20)
30
>>> dict
{'TOM': 21, 'Jerry': 20, 'Alice': 21, 'Obma': 50, 'Eliza': 30}
Python字典修改
>>> dict
{'TOM': 21, 'Jerry': 20, 'Alice': 21, 'Obma': 50, 'Eliza': 30}
>>>
>>> dict["TOM"]=33
>>> dict
{'TOM': 33, 'Jerry': 20, 'Alice': 21, 'Obma': 50, 'Eliza': 30}
update函数
dict.update(up),up字典添加并覆盖dic
>>> up
{'TOM': 22, 'Jerry': 33, 'Alice': 43, 'Obma': 50}
>>>
>>> dict.update(up)
>>> dict
{'TOM': 22, 'Jerry': 33, 'Alice': 43, 'Obma': 50, 'Eliza': 30}
Python字典查询
字典查询都是根据key进行查询的
>>> dict["Alice"]
43
>>> dict["Obma"]
50
>>> dict["Obmaa"] #字典中的key不存在 报错 KeyError
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
dict["Obmaa"]
KeyError: 'Obmaa'
>>>
>>> dict.get("Obmaa") #用get方法 获取字典值是不抛出错误的。
>>> dict.get("Obmaa",None)
>>>
>>> dict.get("Obma",None)
50
>>>
>>> for key in dict:
print(key)
TOM
Jerry
Alice
Obma
Eliza
>>>
>>> for key in dict:
print(dict[key])
22
33
43
50
30
>>> for key in dict.keys():
print(dict[key])
22
33
43
50
30
>>> for v in dict.values():
print(v)
22
33
43
50
30
>>>
获取字典键值对的方法还有很多,可以上网查询,上边是我列的我自己常用的三种方法。
Python字典删除
dict.clear(),该函数不必填写参数,清空字典。
del dict['key'] ,如果删除的键不存在报错
dict.pop(''key",None), pop 函数参数为必填,'sex'参数为字典的键,如果键不存在则会报错.第二个参数选填,如果不填写第二个参数,删除的键不存在则会报错,如果加上"None"参数,找不到删除的键,不会报错,返回None
>>> dict
{'TOM': 22, 'Jerry': 33, 'Alice': 43, 'Obma': 50, 'Eliza': 30}
>>>
>>> dict.pop("alic") #不加 None 删除不存在的键报错 KeyError
Traceback (most recent call last):
File "<pyshell#71>", line 1, in <module>
dict.pop("alic")
KeyError: 'alic'
>>>
>>> dict.pop("alic",None)
>>> dict.pop("alic",None)== None
True
>>> dict.pop("Alice",None)
43
>>> dict
{'TOM': 22, 'Jerry': 33, 'Obma': 50, 'Eliza': 30}
>>>
其他常用的方法
>>> dict
{'TOM': 22, 'Jerry': 33, 'Obma': 50, 'Eliza': 30}
>>> len(dict) # 字典的大小
4
>>>
>>> dict.keys() # 字典key
dict_keys(['TOM', 'Jerry', 'Obma', 'Eliza'])
>>> dict.values() # 字典值
dict_values([22, 33, 50, 30])
>>> dict.items() # 字典 key 与 值
dict_items([('TOM', 22), ('Jerry', 33), ('Obma', 50), ('Eliza', 30)])
>>>
>>> type(dict.keys())
<class 'dict_keys'>
>>> list(dict.keys())
['TOM', 'Jerry', 'Obma', 'Eliza']
>>> list(dict.values())
[22, 33, 50, 30]
>>> list(dict.items())
[('TOM', 22), ('Jerry', 33), ('Obma', 50), ('Eliza', 30)]
>>> dir(type)
['__abstractmethods__', '__base__', '__bases__', '__basicsize__', '__call__', '__class__', '__delattr__', '__dict__', '__dictoffset__', '__dir__', '__doc__', '__eq__', '__flags__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__instancecheck__', '__itemsize__', '__le__', '__lt__', '__module__', '__mro__', '__name__', '__ne__', '__new__', '__prepare__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasscheck__', '__subclasses__', '__subclasshook__', '__text_signature__', '__weakrefoffset__', 'mro']
>>>
字典与列表有很多共同之处,最主要的区别列表是有序集合,字典是无序集合,字典是键-值对应的,而且一个字典中的键是唯一的。
留言与评论(共有 0 条评论) |