Python中的dict字典详解

# ========================字典(dict)基本方法===========================
# 用途:
# 定义方式:通过大括号来存储数据,通过key:value来定义键值对数据,每个键值对中间通过逗号分隔

# key:一定是一个不可变类型
# value:可以是任意类型

 

定义方式

定义:在{}内用各元素用逗号隔开,每个元素都是 key:value的形式,其中value可以是任意类型, 而key必须是不可变类型。一般而言,key是str类型,因为字符串类型可以对value有描述性功能

my_dict = {'name': 'yyh', 'age': 18, 'sex': 'male'}
# 等价于
my_dict = dict({'name': 'yyh', 'age': 18, 'sex': 'male'})

类型转换

# 转换1:
my_dict = dict([['name', 'yyh'], ('age', 18)]) print(my_dict) >>>{'name': 'yyh', 'age': 18}
# 转换2:
my_dict = {}.fromkeys(('name','age','sex'),None) print(my_dict)

>>>{'name': None, 'age': None, 'sex': None}
# fromkeys()将元组内的值分别取出作为Key与None(第二个参数)形成配对
# dict + zip生成字典
my_dict = dict(zip(['k1', 'k2', 'k3'], [1, 2, 3]))
print(my_dict)

 

操作

# 1.取值
print(my_dict['name'])
print(my_dict['hobbies'][0])
# 赋值 ps:如果键已存在,则会改变对应的值
my_dict['sex'] = 'male'
my_dict['age'] = 20
print(my_dict)
# 2.长度
print(len(my_dict))

# 3.in 和 not in 判断某个值是否为dict的key
print('name' in my_dict)

# 4.删除 pop()删除指定的key及对应的value,并返回value的值
print(my_dict.pop('name'))
# 5.keys(),values()和items()
print(my_dict.keys())       # 返回所有的key
print(my_dict.values())     # 返回所有的value
print(my_dict.items())      # 返回所有的键值对
# 6.for循环遍历
for key in my_dict:     # 默认遍历为key
    print(key)

for key in my_dict.keys():
    print(key)

for value in my_dict.values():      # 遍历value
    print(value)

for key,value in my_dict.items():       # 遍历键值对
    print(key,':',value,sep='')

 

# 7.get()
print(my_dict.get('name'))     # 返回对应的value
print(my_dict.get('aaa',200))       # 如果不存在指定的key,默认返回None,第二个参数可设置返回值(200)

# 8.pop()
print(my_dict.pop('name'))    # 删除指定的key和value,并返回value

# 9.popitem()
print(my_dict.popitem())      # 随机删除一对键值,将被删除的key和value在元组内返回

 

# 10.update()  # 用新字典更新旧字典,有则更改,无则添加(只增不减)
my_dict = {
    'name': 'yyh',
    'age': 19,
    'hobbies': ['basketball', 'running']
}
my_dict.update({'sex': 'male'})
print(my_dict)

>>>{'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running'], 'sex': 'male'}

 

# 11.fromkeys()
print(my_dict)
my_dict = {}.fromkeys(['k1','k2','k3'],[])
print(my_dict)
>>>

{'name': 'yyh', 'age': 19, 'hobbies': ['basketball', 'running']}
{'k1': [], 'k2': [], 'k3': []}

 

# 12.setdefault()
my_dict = {
    'name': 'yyh',
    'age': 19,
    'hobbies': ['basketball', 'running']
}
res = my_dict.setdefault('name','jxx')      # 如果键已存在,值不会发生改变
print(res)                                  # 输出为 yyh
res = my_dict.setdefault('sex','male')      # 如果键不存在,会新增
print(res)
print(my_dict)

 

# =========================类型总结==========================
# 有序or无序  : 无序
# 可变or不可变  :可变类型
# 存一个值or存多个值 : 存多个值

 

posted @ 2019-11-04 17:19  GhostAnt  阅读(5304)  评论(0编辑  收藏  举报