Python 字典

字典

燃烧一个人的灵魂,正是对生命的爱,那是至死方休 –佚名

字典是一种用来存放若干键值对的数据类型.
什么是键值对?键值对就是两个对象,其中一个是用来做定位的数据,叫做键(key),另一个要存放的数据叫做值(Value)在字典中,键值对作为一个整体被存放,我们可以通过键来快速获取到对应的值

在 Python 中字典用花括号{}来表示,键值对以键:值得方式写入花括号,有多个键值对得时候,用逗号隔开

类似


{
  'name':'Tom'
  'sex':'男'
}

使用的时候通过 name 来找到值 Tom

字典使用

字典的创建

  • 创建一个空的字典

# 字典 = {}

empty_dict = {}

# 结果 {}
  • 创建包含键值对的字典

# 字典 = {键1:值 1,键2:值2,...键N:值N}

# 如城市何其对应得电话区号

codes = {
  'beijing':'010',
  'tianjin':'012'
}

字典键值对得添加

  • 向字典中增加键值对

# 字典
# 字典[键] = 值

codes = {
   'beijing':'010',
   'tianjin':'012'
}

codes['shanghai'] = '013'
# 结果
# {'beijing':'010','tinajin':'012','shanghai':'013'}

使用这种方式得时候,若字典中没有这个键,则会创建这个键值对,若字典中原本已有这个键,则是修改键所对应的值

键值对得获取

  • 通过键获取值

# 值 = 字典[键]

codes = {
   'beijing':'010',
   'tianjin':'012'
}

result = codes['beijing']

# 结果 010
# 但是要是没有这个属性得话, 则会抛出异常比如 codes['haha']
  • 通过键获取值(get 方法),也可以设置默认值要是没有得话就从默认值取

# 值 = 字典.get(键)

# 值 = 字典.get(键,值)
codes = {
   'beijing':'010',
   'tianjin':'012'
}

result = codes.get('beijing')

# 结果就是010

result2 = codes.get('haha')

# 结果就是None

result3 = codes.get('hehe','开心')

# 这样结果就是开心

判断字典是否包含某个键

  • in

codes = {
   'beijing':'010',
   'tianjin':'012'
}
if 'tianjin' in codes:
   print('有这个属性')

获取键得列表

  • keys

# 键得列表 = 字典.keys()

codes = {
    'beijing': '010',
    'tianjin': '012'
}
for content in codes.keys():
    print(content)

# 结果
# beijing
# tianjin

获取所有值


# 值得列表 = 字典.values()

codes = {
    'beijing': '010',
    'tianjin': '012'
}
for content in codes.values():
    print(content)

# 值
# 010 012

获取所有键值对得列表


# 值得列表 = 字典.items()

codes = {
    'beijing': '010',
    'tianjin': '012'
}
for index, content in codes.items():
    print(content)
    print(index)

# 结果
# 010
# beijing
# 012
# tianjin

字典键值对得删除

  • 通过键删除键值对 pop

可以使用 pop 方法删除一个键值对,并将其值返回


# 值 = 字典.pop(键)

codes = {
    'beijing': '010',
    'tianjin': '012'
}

result = codes.pop('beijing')
print(codes)
print(result)
# 结果
# {'tianjin': '012'}
# 010

但是如果 pop 一个不存在得值,则会抛出 KeyError 异常

为了避免抛出异常,可以通过传递 pop 方法的第二个参数作为默认值,默认值仅在键不存在时生效,此时方法将直接返回这个默认值,且跳过删除操作


codes = {
    'beijing': '010',
    'tianjin': '012'
}

result = codes.pop('guangzhou', '广州')
print(codes)
print(result)

# 结果
# {'beijing': '010', 'tianjin': '012'}
# 广州
  • 通过键删除键值(del 方法)

# del 字典[键]

codes = {
    'beijing': '010',
    'tianjin': '012'
}

del codes['tianjin']
print(codes)

# 结果
# {'beijing': '010'}
  • 随机删除一个键值对,使用 popitem

使用 popitem 随机删除一个键值对,并返回这个键值对得二元组,二元组得第一个元素是键,第二个元素是值


# 键值二元组 = 字典.popitem()

codes = {
    'beijing': '010',
    'tianjin': '012',
    'shanghai': '013'
}
codes.popitem()
print(codes)

  • 清空所有键值对

# 键值二元组 = 字典.clear()
codes = {
    'beijing': '010',
    'tianjin': '012',
    'shanghai': '013'
}

codes.clear()

print(codes)

# 结果{}

字典中对值修改

  • 修改键对应的值

# 字典[键] = 值

codes = {
    'beijing': '010',
    'tianjin': '012',
    'shanghai': '013'
}

codes['shanghai'] = '我修改了'
print(codes)
# 结果
# {'beijing': '010', 'tianjin': '012', 'shanghai': '我修改了'}
  • 用字典批量更新键值对

# 字典.update(另一字典)

codes = {
    'beijing': '010',
    'tianjin': '012',
    'shanghai': '013'
}

codes.update({
    'beijing': '010',
    'tianjin': '012',
    'shanghai': '更新了'
})

print(codes)

# 结果
# {'beijing': '010', 'tianjin': '012', 'shanghai': '更新了'}

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录