Python基础--字典

字典等同于Java中的容器。与JavaScript中的Json对象更相似。由键值对组成,keyvalue用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}中。键必须是唯一的,值不是。键必须不可变,所以键可以是数字,字符串或元组,但不能是列表。

1.字典的创建

①语法:dict = {key1 : value1, key2 : value2, key3 : value3 }
>>> dict1 = {"name": "yanxueer", "age": "24"}
>>> print(dict1)
{'name': 'yanxueer', 'age': '24'}
②通过dict()映射其他字典或键/值序列对创建字典.
# 映射其他字典
>>> dict2 = dict(dict1)
>>> dict2
{'name': 'yanxueer', 'age': '24'}
# 通过列表和元组创建
>>> dict3 = dict([('name','yan'),('age','24')])
>>> dict3
{'name': 'yan', 'age': '24'}

2.获取字典的值

①语法:dict[key]
>>> dict1["name"]
'yanxueer'

当然也需要像列表中注意索引那样,也需要保证key的存在,否则就会出错。

>>> dict1["Age"]
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'Age'

我们应该尽量避免系统中出现可能会出错的代码。所以get()方法是一个更好的选择。

get()方法来获取值,如果key存在于字典中则返回key的值,否则默认返回None,当然你可以指定其在不存在时返回什么值。
>>> dict1.get("name")
'yanxueer'
>>> dict1.get("Age")
# 默认为'None'
>>> print(dict1.get("dfd"))
None
# 设置当不存在时返回为'1'
>>> dict1.get("Age",1)
1

3.修改和添加字典

① 修改字典可以通过key值来获取字典value值之后直接修改
>>> print(dict1)
{'name': 'yanxueer', 'age': '24'}
>>> dict1["age"] = 25
>>> print(dict1)
{'name': 'yanxueer', 'age': 25}
setdefault():如果 key 在 字典中,返回对应的值。
>>> dict1 = {'name': 'yanxueer'}
>>> dict1.setdefault("name")
'yanxueer'

如果不在字典中,则插入 key 及设置的default,并返回设置的defaultdefault 默认值为 None

# 默认值
>>> dict1.setdefault("age")
>>> dict1
{'name': 'yanxueer', 'age': None}
# 自行设置值
>>> dict1.setdefault("sex",1)
1
>>> dict1
{'name': 'yanxueer', 'age': None, 'sex': 1}
③ 也和修改字典的方式一样,当key值存在为修改,不存在则为添加
>>> print(dict1)
{'name': 'yanxueer', 'age': 25}
>>> dict1["sex"] = "0"
>>> print(dict1)
{'name': 'yanxueer', 'age': 25, 'sex': '0'}

4.删除字典

deldel()删除字典的键和字典本身
# 删除键 'name'
>>> del dict1['name']
>>> dict1
{'age': 25, 'sex': '0'}

del dict删除字典

>>> del dict1
>>> dict1
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'dict1' is not defined
clear()清空字典
>>> dict1 = {"name": "yanxueer", "age": "24"}
>>> dict1
{'name': 'yanxueer', 'age': '24'}
>>> dict1.clear()
>>> dict1
{}
pop():删除字典给定键 key 所对应的值,返回值为被删除的值。
>>> dict1 = {"name": "yanxueer", "age": "24"}
>>> dict1.pop("age")
'24'
>>> dict1
{'name': 'yanxueer'}

key值必须给出否则就会报错。

>>> dict1 = {"name": "yanxueer", "age": "24"}
>>> dict1.pop()
Traceback (most recent call last):
  File "", line 1, in 
TypeError: pop expected at least 1 argument, got 0

如果要删除的 key 不存在,则需要添加默认值,否则会报错。

>>> dict1
{'name': 'yanxueer'}
>>> dict1.pop("age")
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'age'
>>> dict1.pop("age",24)
24
popitem():返回并删除字典中的最后一对键和值。
>>> dict1 = {"name": "yanxueer", "age": "24"}
>>> dict1.popitem()
('age', '24')
>>> dict1
{'name': 'yanxueer'}

如果字典已经为空,却调用了此方法,就报错。

>>> dict1.clear()
>>> dict1.popitem()
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'popitem(): dictionary is empty'

5.获取所有的key或者value

keys():以列表返回一个字典所有的键
>>> dict1 = {"name": "yanxueer", "age": "24"}
>>> dict1.keys()
dict_keys(['name', 'age'])
values():以列表返回字典中的所有值
>>> dict1 = {"name": "yanxueer", "age": "24"}
>>> dict1.values()
dict_values(['yanxueer', '24'])

6.字典的嵌套

上面我们知道字典的key可以时任何不可变类型,那么它的value可以为任意类型,包括字典本事,字典的value为字典则就是字典的嵌套
dict = {key:{key:value}}

>>> dict1 = {"key":{"key":"value"}}
>>> dict1
{'key': {'key': 'value'}}
# 嵌套字典或者列表都是化整为零逐步分解
>>> dict1['key']['key']
'value'

字典的学习到此结束。

每日一言
好的习惯不会一天养成,也不会因为一天而废止,所以克己,律己。用耐心,决心,平常心去对待。

你可能感兴趣的:(Python基础--字典)