Python机器学习原理与算法实现
上QQ阅读APP看书,第一时间看更新

1.8.1 字典的基本操作

字典的基本操作包括创建字典、删除字典、查看字典元素、遍历字典元素等。

1.创建字典

字典的创建方法有很多种,比较常见的有:

(1)通过给定的键-值对以直接赋值的方式创建

     # 创建方法1:通过给定键-值对以直接赋值的方式来创建字典
     dict1={'x':1,'y':2,'z':3}         # 通过给定键-值对以直接赋值的方式创建字典dict1
     print(dict1)     # 查看字典dict1。运行结果为:{'x': 1, 'y': 2, 'z': 3}
     dict={ } # 生成空字典dict
     print(dict)      # 查看空字典dict。运行结果为:{}

(2)通过映射函数的方式创建

     # 创建方法2:通过映射函数的方式来创建字典
     list1 = ['x', 'y', 'z'] # 创建列表list1
     list2 = [1, 2, 3]      # 创建列表list2
     dict2 = dict(zip(list1, list2))         # zip函数的作用是将多个列表或元组对应位置的元素组合为元组,并返回包
含这些内容的zip对象,本例中先通过zip()函数将列表list1和list2组合为元组,再调用dict()函数生成字典dict2
     print(dict2)     # 查看字典dict2。运行结果为:{'x': 1, 'y': 2, 'z': 3}

(3)将列表序列转换为字典

     # 创建方法3:将列表序列转换为字典
     list1=[('x',1), ('y',2), ('z',3)]            # 创建列表list1
     dict3=dict(list1)     # 将列表list1转换为字典dict3
     print(dict3)     # 查看字典dict3。运行结果为:{'x': 1, 'y': 2, 'z': 3}

(4)通过已经存在的元组和列表创建字典

     # 创建方法4:通过已经存在的元组和列表来创建字典
     tuple1 = ('x', 'y', 'z')          # 创建元组tuple1
     list1 = [1, 2, 3]     # 创建列表list1
     dict4 = {tuple1:list1} # 生成字典dict4,键为tuple1,值为list1
     print(dict4)     # 查看字典dict4。运行结果为:{('x', 'y', 'z'): [1, 2, 3]}

(5)定义字典

     # 创建方法5:定义字典的另一种方式
     dict5=dict(x=1,y=2,z=3) # 创建字典dict5
     print(dict5)     # 查看字典dict5。运行结果为:{'x': 1, 'y': 2, 'z': 3}

2.删除字典

删除字典可以用del dict、dict.clear()、dict.pop()、dict.popitem()来实现。

(1)del dict

del dict用于删除整个字典,比如输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}         # 创建字典dict1
     del dict1  # 删除字典dict1
     dict1      # 查看字典dict1是否存在

系统会提示错误,因为字典dict1不存在。

(2)dict.clear()

dict.clear()用于清除字典内的所有元素(所有的键-值对),如果针对某字典执行该函数,那么被执行的字典将会变成空字典。示例如下,输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}         # 创建字典dict1
     dict1.clear()    # 清除字典dict1内的所有元素
     dict1            # 查看字典dict1。运行结果为:{}

(3)dict.pop()

dict.pop()函数返回指定键对应的值,并在原字典中删除这个键-值对。示例如下,输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}         # 创建字典dict1
     x=dict1.pop('x')      # 返回指定键'x'对应的值,并在原字典中删除这个键-值对
     print(x)         # 查看指定键'x'对应的值,运行结果为1
     print(dict1)     # 查看字典dict1。运行结果为:{'y': 2, 'z': 3}

(4)dict.popitem()

dict.popitem()函数删除字典中的最后一个键-值对,并返回该键-值对。示例如下,输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}  # 创建字典dict1
     dict1.popitem()       # 删除字典dict1中的最后一个键-值对,并返回该键-值对,运行结果为('z', 3)
     print(dict1)     # 查看字典dict1。运行结果为:{'x': 1, 'y': 2}

3.查看字典元素

(1)通过键-值对查看字典元素

字典通过键而不是索引来读取元素。我们可以通过键-值对来查看字典元素。示例如下,输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}        # 创建字典dict1
     print(dict1['y'])     # 查看字典dict1中键'y'对应的值。运行结果为:2

(2)dict.get()

dict.get()函数用于返回指定键的值,如果键不在字典中,则不会返回值,也可以为键指定值,在指定值的情况下,返回的是指定值。比如输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}         # 创建字典dict1
     x= dict1.get('x')     # 将字典dict1中键'x'对应的值赋值给变量x
     x     # 输出x的值,运行结果为1
     w= dict1.get('w')     # 将字典dict1中键'w'对应的值赋值给w
     w     # 输出w的值,运行结果为无输出,因为字典dict1中没有键'w'
     w= dict1.get('w',4)         # 将字典dict1中键'w'对应的值设置为4,并把该值赋值给变量w
     w     # 输出w的值,运行结果为4

4.遍历字典元素

(1)dict.items()

dict.items()函数以列表形式返回可遍历的(键,值)元组数组,或者说获取字典中的所有键-值对。示例如下,输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}        # 创建字典dict1
     print(dict1.items())       # 获取并输出字典dict1中的所有键-值对。运行结果为:dict_items([('x', 1),
('y', 2), ('z', 3)])

(2)dict.keys()

dict.keys()函数以列表形式返回字典中所有的键。示例如下,输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}   # 创建字典dict1
     print(dict1.keys())        # 以列表形式返回字典dict1中所有的键。运行结果为:dict_keys(['x', 'y',
'z'])

(3)dict.values()

dict.values()以列表形式返回字典中的所有值。示例如下,输入以下代码并逐行运行:

     dict1={'x':1,'y':2,'z':3}  # 创建字典dict1
     print(dict1.values())      # 以列表形式返回字典dict1中所有的值。运行结果为:dict_values([1, 2,
3])