Python 3.6从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

3.3 字典的基本操作

与列表和元组有所不同,字典是另一种可变容器模型,且可存储任意类型的对象。本节将学习字典的基本操作。

3.3.1 字典对象的常用操作

字典的对象使用大括号{}将元素列出。字典的元素排列并没有一定的顺序,因为可以使用键值来取得该元素。

下面的示例将创建一个字典对象:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd

运行结果如图3-39所示。

图3-39 运行结果

1. 获取字典中的元素值

通过使用键值作为索引,可以返回字典中的元素。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd["名称"]
    >>>dd["产地"]
    >>>dd["价格"]

运行结果如图3-40所示。

图3-40 运行结果

在获取字典中的元素值时,必须保证输入的键值在字典中是存在的,否则Python会产生一个KeyError错误。

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd["姓名"]

运行结果如图3-41所示。

图3-41 运行结果

从报错信息可以看出,这里不存在"姓名"的键值。

2. 修改字典中的元素值

字典中的元素值是可以修改的。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd["名称"] = "洗衣机"
    >>>dd

运行结果如图3-42所示。

3. 删除字典中的元素

使用del语句可以删除字典中的元素。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>del dd["名称"]
    >>>dd

运行结果如图3-43所示。

图3-43 运行结果

4. 定义字典键值时需要注意的问题

字典键值是不能随便定义的,需要注意以下两点:

(1)不允许同一个键值多次出现。创建时如果同一个键值被赋值多次,那么只有最后一个值有效,前面重复的值将会被自动删除。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500","产地":"上海", "价格":"8500"}
    >>>dd

运行结果如图3-44所示。

图3-44 运行结果

(2)因为字典键值必须不可变,所以可以用数字、字符串或元组充当,列表则不行。如果用列表做键值,将会报错。例如:

    >>>dd = {["名称"]:"冰箱", "产地":"北京", "价格":"6500"}

运行结果如图3-45所示。

图3-45 运行结果

3.3.2 字典的内置函数和方法

本节主要讲述字典的内置函数和方法。

1. 字典的内置函数

字典的内置函数包括len()、str()和type()。

(1)len(dict):计算字典元素个数,即键值的总数。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>len(dd)

运行结果如图3-46所示。

图3-46 运行结果

(2)str(dict):将字典的元素转化为可打印的字符串形式。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>str(dd)

运行结果如图3-47所示。

图3-47 运行结果

(3)type(variable):返回输入的变量类型,如果变量是字典,就返回字典类型。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>type(dd)

运行结果如图3-48所示。

图3-48 运行结果

2. 字典的内置方法

字典对象有许多内置方法,在Python解释器内输入dir({}),就可以显示这些内置方法的名称,结果如图3-49所示。

图3-49 字典的内置方法

下面挑选常用的方法进行讲解。

(1)clear():清除字典中的所有元素。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.clear()
    >>>dd

运行结果如图3-50所示。

图3-50 运行结果

(2)copy():复制字典。例如:

    >>>cc = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd = cc.copy()
    >>>dd

运行结果如图3-51所示。

图3-51 运行结果

(3)get(k [, d]):k是字典的索引值,d是索引值的默认值。如果k存在,就返回其值,否则返回d。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.get("名称")
    >>>dd.get("品牌","不存在")

运行结果如图3-52所示。

图3-52 运行结果

(4)items():使用字典中的元素创建一个由元组对象组成的列表。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.items()

运行结果如图3-53所示。

图3-53 运行结果

(5)keys():使用字典中的键值创建一个列表对象。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.keys()

运行结果如图3-54所示。

图3-54 运行结果

(6)popitem():删除字典中的最后一个元素。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.popitem()
    >>>dd
    >>>dd.popitem()
    >>>dd

运行结果如图3-55所示。

图3-55 运行结果

(7)setdefault(k [, d]):k是字典的键值,d是键值的默认值。如果k存在,就返回其值;否则返回d,并将新的元素添加到字典中。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.setdefault("名称")
    >>>dd
    >>>dd.setdefault("品牌","海尔")
    >>>dd

运行结果如图3-56所示。

图3-56 运行结果

(8)update(E):E是字典对象,由字典对象E来更新此字典。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.update({"品牌":"海尔"})
    >>>dd

运行结果如图3-57所示。

图3-57 运行结果

(9)values():使用字典中键值的数值创建一个列表对象。例如:

    >>>dd = {"名称":"冰箱", "产地":"北京", "价格":"6500"}
    >>>dd.values()

运行结果如图3-58所示。

图3-58 运行结果