12. Python 字典

231 阅读2分钟

什么是字典?

  • 在 Python 中,字典与列表类似,也是可变序列的,不过与列表不同,它是无序的可变序列,保存的内容是以 键 - 值对 的形式存放的。

字典的主要特征如下:

  • 通过键名来读取而不是通过索引来读取

  • 字典是任意对象的无序集合

  • 字典是可变的,并且可以任意嵌套

  • 字典中的键必须唯一(不允许同一键出现两次,如果出现两次,则后一个值会被记住)

  • 字典中的键必须不可变(字典中的键是不可变的,所以可以使用数字、字符串或者元组,但不能使用列表)

字典的创建和删除

  • 定义字典时,每个元素都包含两个部分 。以水果名称和价格的字典为例。
dictionary = {
    'apple': '60',
    'pear': '70'
}
  • 两种方法创建空字典
dictionary = {}

# 或者

dictionary = dict()
  • 通过映射函数创建字典

    • zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元祖,然后返回由这些元祖组成的列表。利用 * 号操作符,可以将元组解压为列表
    name = ['依梦', '冷依依', '香凝', '黛兰']
    sign = ['水瓶座', '射手座', '双鱼座', '双子座']
    dictionary = dict(zip(name, sign))
    print(dictionary)
    
    # {
    #    '依梦': '水瓶座',
    #    '冷依依': '射手座',
    #    '香凝': '双鱼座',
    #    '黛兰': '双子座'
    # }
    

通过给定的关键字参数创建字典

  • 将名字和星座以关键字参数形式创建一个字典
dictionary = dict(依梦 = '水瓶座', 冷依依 = '射手座')
  • 在 python 中,还可以使用 dict 对象的 fromkeys() 方法创建值为空的字典
name_list = ['依梦', '冷依依', '香凝']
dictionary = dict.fromkeys(name_list)

print(dictionary)
# { '依梦': None, '冷依依': None, '香凝': None }
  • 同列表和元组一样,不再需要的字典的也可以使用 del 命令删除整个字典。例如,通过下面的代码即可已经定义的字典删除。
dictionary = { '依梦': None, '冷依依': None }
del dictionary

# 如果只是想删除字典的全部元素,还可以使用字典对象 pop() 方法删除并返回指定 '键' 元素
dictionary.clear()