美文网首页
Python dict字典

Python dict字典

作者: LinuxLeeSinYY | 来源:发表于2020-03-31 13:18 被阅读0次

    4.13 Python dict字典

    Python 字典(dict)是一种无序的、可变的序列,它的元素以 键值对(key-value) 的形式存储。
    相对地,列表(list)和元组(tuple)都是有序的序列,它们的元素在底层是挨着存放的。

    字典类型是 Python 中唯一的映射类型。“映射”是数学中的术语,简单理解,它指的是元素之间相互对应的关系,即通过一个元素,可以唯一找到另一个元素。

    字典的每个键值对key:value用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

    d = {key1 : value1, key2 : value2 }  
    

    键必须是唯一不变的,但值则不必。

    值可以取任何数据类型,如字符串,数字或元组。

    一个简单的字典实例:

    dict = {'Linux': 'OS', 'Windows': 'OS', 'MACOS': 'OS'}
    
    Python字典特征

    Python 创建字典

    • 使用 { } 创建字典

    由于字典中每个元素都包含两部分,分别是键(key)和值(value),因此在创建字典时,键和值之间使用冒号:分隔,相邻元素之间使用逗号,分隔,所有元素放在大括号{ }中。

    使用{ }创建字典的语法格式如下:

    dictname = {'key':'value1', 'key2':'value2', ..., 'keyn':valuen}
    

    其中 dictname 表示字典变量名,key : valuen 表示各个元素的键值对。需要注意的是,同一字典中的各个键必须唯一,不能重复。

    如下代码示范了使用花括号语法创建字典:

    #使用字符串作为key
    scores = {'数学': 95, '英语': 92, '语文': 84}
    print(scores)
    #使用元组和数字作为key
    dict1 = {(20, 30): 'great', 30: [1,2,3]}
    print(dict1)
    #创建空元组
    dict2 = {}
    print(dict2)  
    

    运行结果为:

    {'数学': 95, '英语': 92, '语文': 84}
    {(20, 30): 'great', 30: [1, 2, 3]}
    {}
    

    可以看到,字典的键可以是整数、字符串或者元组,只要符合唯一和不可变的特性就行;字典的值可以是 Python 支持的任意数据类型。

    • 通过 fromkeys() 方法创建字典

    Python 中,还可以使用 dict 字典类型提供的 fromkeys() 方法创建带有默认值的字典,具体格式为:

    dictname = dict.fromkeys(list,value=None)
    

    其中,list 参数表示字典中所有键的列表(list)value 参数表示默认值,如果不写,则为空值 None。

    请看下面的例子:

    knowledge = {'语文', '数学', '英语'}
    scores = dict.fromkeys(knowledge, 60)
    print(scores)  
    

    运行结果为:

    {'语文': 60, '英语': 60, '数学': 60}
    

    可以看到,knowledge 列表中的元素全部作为了 scores 字典的键,而各个键对应的值都是 60。这种创建方式通常用于初始化字典,设置 value 的默认值。

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

    通过 dict() 函数创建字典的写法有多种,表 2 罗列出了常用的几种方式,它们创建的都是同一个字典 a。

    dict函数创建字典

    注意,无论采用以上哪种方式创建字典,字典中各元素的键都只能是字符串、元组或数字,不能是列表。列表是可变的,不能作为键。

    如果不为 dict() 函数传入任何参数,则代表创建一个空的字典,例如:

    # 创建空的字典
    d = dict()
    print(d)  
    

    运行结果为:{}

    常用字典内置方法

    4.14 Python dict字典基本操作

    由于字典属于可变序列,所以我们可以任意操作字典中的键值对(key-value)。Python 中,常见的字典操作有以下几种:

    • 向现有字典中添加新的键值对。
    • 修改现有字典中的键值对。
    • 从现有字典中删除指定的键值对。
    • 判断现有字典中是否存在指定的键值对。

    初学者要牢记,字典是由一个一个的 key-value 构成的,key 是找到数据的关键,Python 对字典的操作都是通过 key 来完成的。

    Python字典添加键值对
    为字典添加新的键值对很简单,直接给不存在的 key 赋值即可,具体语法格式如下:dictname[key] = value

    对各个部分的说明:

    • dictname 表示字典名称。
    • key 表示新的键。
    • value 表示新的值,只要是 Python 支持的数据类型都可以。

    下面代码演示了在现有字典基础上添加新元素的过程:

    a = {'数学':95}
    print(a)
    #添加新键值对
    a['语文'] = 89
    print(a)
    #再次添加新键值对
    a['英语'] = 90
    print(a)
    运行结果:
    {'数学': 95}
    {'数学': 95, '语文': 89}
    {'数学': 95, '语文': 89, '英语': 90}
    

    Python字典修改键值对

    Python 字典中键(key)的名字不能被修改,我们只能修改值(value)。

    字典中各元素的键必须是唯一的,因此,如果新添加元素的键与已存在元素的键相同,那么键所对应的值就会被新的值替换掉,以此达到修改元素值的目的。请看下面的代码:

    a = {'数学': 95, '语文': 89, '英语': 90}
    print(a)
    a['语文'] = 100
    print(a)
    运行结果:
    {'数学': 95, '语文': 89, '英语': 90}
    {'数学': 95, '语文': 100, '英语': 90}

    可以看到,字典中没有再添加一个{'语文':100}键值对,而是对原有键值对{'语文': 89}中的 value 做了修改。

    Python字典删除键值对

    如果要删除字典中的键值对,还是可以使用 del 语句。例如:

    # 使用del语句删除键值对
    a = {'数学': 95, '语文': 89, '英语': 90}
    del a['语文']
    del a['数学']
    print(a)
    运行结果为:
    {'英语': 90}
    

    判断字典中是否存在指定键值对

    如果要判断字典中是否存在指定键值对,首先应判断字典中是否有对应的键。判断字典是否包含指定键值对的键,可以使用 innot in 运算符。
    需要指出的是,对于 dict 而言,in 或not in运算符都是基于key` 来判断的。

    例如如下代码:

    a = {'数学': 95, '语文': 89, '英语': 90}
    # 判断 a 中是否包含名为'数学'的key
    print('数学' in a) # True
    # 判断 a 是否包含名为'物理'的key
    print('物理' in a) # False  
    

    运行结果为:

    True
    False
    

    通过 in(或 not in)运算符,我们可以很轻易地判断出现有字典中是否包含某个键,如果存在,由于通过键可以很轻易的获取对应的值,因此很容易就能判断出字典中是否有指定的键值对。

    相关文章

      网友评论

          本文标题:Python dict字典

          本文链接:https://www.haomeiwen.com/subject/tilwuhtx.html