08.Python开发基础(数据类型之字典)


一、字典数据类型的特性

01.是key-value型的数据类型,其中key必须为不可变数据数据,且得唯一;
02.可存放多个值,可修改(value可修改,key可删除),无序的(数据量多的时候就会无序);
03.字典的查询速度要比列表和元组要快,因为是hash键(key);
04.字典的查询速度不受字典的大小影响;

二、字典的几种创建方式

## 创建方式的格式

第一种方法:字典名 = {"key1":"value","key2":"value"}       # 常用
第二种方法:字典名 = dict(key1="value",key2="value")       # 常用
第三种方法:字典名 = dict({"key1":"value","key2":"value"}) # 不常用
第四种方法:字典名 = {}.fromkeys(keys,value)               # 批量生成键(key),记住就可以

## 创建方式的示例

# 字典名 = {"key1":"value","key2":"value"}   示例
>>> info1 = {"name":"chenliang","age":"26"}
>>> type(info1)

>>> info1
{'name': 'chenliang', 'age': '26'}
   
# 字典名 = dict(key1="value",key2="value")   示例
>>> info2 = dict(name="chenliang",age="26")
>>> type(info2)

>>> info2
{'name': 'chenliang', 'age': '26'}

# 字典名 = dict({"key1":"value","key2":"value"}) 示例
>>> info3 = dict({"name":"chenliang","age":"26"})
>>> type(info3)

>>> info3
{'name': 'chenliang', 'age': '26'}

# 字典名 = {}.fromkeys(keys,value)  示例
>>> keys = list(range(1,6))
>>> keys
[1, 2, 3, 4, 5]
>>>
>>> info4 = {}.fromkeys(keys,"chenliang")
>>> type(info4)

>>> info4
{1: 'chenliang', 2: 'chenliang', 3: 'chenliang', 4: 'chenliang', 5: 'chenliang'}

三、字典的常用操作总结/示例

## 查询的相关方法总结

字典名.keys()                # 查看字典中有哪些key
字典名.values()              # 查看字典中有哪些value
"key1" in 字典名             # 查看key1键是否在字典中存在
字典名["key1"]               # 查看字典中key1键对应的value,若key不存在,则会报错
字典名.get("key1")           # 若key存在,则返回相应的值,若不存在不会报错

## 查询的相关方法示例

>>> info1 = dict(name="chenliang",sex="男",age="26")
>>> type(info1)

>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '26'}
>>>
>>>
>>> info1.keys()
dict_keys(['name', 'sex', 'age'])
>>>
>>>
>>> info1.values()
dict_values(['chenliang', '男', '26'])
>>>
>>>
>>> "name" in info1
True
>>>
>>>
>>> info1["name"]
'chenliang'
>>>
>>>
>>> info1.get("age")
'26'
>>> info1.get("height")
>>>

## 增加/修改的相关方法总结

字典名["key"] = "value"          # 若key在字典中存在,则会修改存在key的value
字典名.setdefault("key","value") # 若key在字典中存在,则会返回存在key对应的value

## 增加/修改的相关方法示例

>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '26'}
>>>
>>>
>>> info1["age"] = "27"
>>> info1["age"]
'27'
>>>
>>>
>>> info1.setdefault("age","28")
'27'
>>> info1["age"]
'27'
>>>
>>>
>>> info1.setdefault("height","170")
'170'
>>> info1["height"]
'170'
>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '27', 'height': '170'}

## 合并的相关方法总结

字典1.update(字典2)          # 将字典2中的数据合并到字典1中

## 合并的相关方法示例

>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '27', 'height': '170'}
>>>
>>>
>>> info2 = dict(course="Python")
>>> info2
{'course': 'Python'}
>>>
>>>
>>> info1.update(info2)
>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '27', 'height': '170', 'course': 'Python'}

## 删除的相关方法总结

字典名.pop("key")            # 删除指定的key
字典名.popitem()             # 随便删除1个key
del 字典名["key"]            # 删除指定的key
字典名.clear()               # 清空dict

 ## 删除的相关方法示例

>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '27', 'height': '170', 'course': 'Python'}
>>>
>>>
>>> info1.pop("course")
'Python'
>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '27', 'height': '170'}
>>>
>>>
>>> info1.popitem()
('height', '170')
>>> info1
{'name': 'chenliang', 'sex': '男', 'age': '27'}
>>>
>>>
>>> del info1["sex"]
>>> info1
{'name': 'chenliang', 'age': '27'}
>>>
>>>
>>> info1.clear()
>>> info1
{}

四、字典的循环方法和相关示例

## 字典循环推荐方法总结

for k in dic

## 字典循环推荐方法示例

# 定义字典info1
info1 = {'name': 'chenliang', 'sex': '男', 'age': '27', 'height': '170'}

# for循环
for k in info1:
    if k == "age":
        print(k,info1[k])