字典

字典

  1. 无序的可变序列。
  2. 以键值对保存内容。
  3. 键是唯一的,值可以有多个。

特点

  1. 通过键来读取值。
  2. 任意对象的无序集合。
  3. 字典可变,可嵌套。
  4. 键必须唯一,如果键出现两次,则最后一个值会替换前面的值。
  5. 键不可变

字典的创建

1、键值之间冒号分隔,元素之间逗号分隔。

#语法
d = {key1 : value1, key2 : value2, key3 : value3 }
#key1:键,必须唯一,不可变,可以为字符串、数字、元组。
#value1:值,可以是任意数据类型

#案例
dictionary = {'qq':'1565487','mr':'4584651','无语':'0816-8465138'}
print(dictionary)
#输出{'qq': '1565487', 'mr': '4584651', '无语': '0816-8465138'}

#创建空字典
dictionary = {}
dictionary = dict()

2、通过已有的数据创建字典

通过zip()函数,将两个列表合并成字典。

#语法
dictionary = dict(zip(list1,list2))
#dictionary:字典名
#zip():函数,将多个列表或元组对应位置的元素组合成元组,并返回包含这些内容的zip对象
#dict():函数,将zip对象转换为字典

#案例
name = ['赵飞','刘翔','李萌']
like = ['喜欢馒头','喜欢锻炼','喜欢逛街']
dictionary = dict(zip(name,like))
print(dictionary)
#输出 {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢逛街'}

3、通过键值对创建字典

#语法
dictionary = dic(key1=value,key2=value2,...,keyn=valuen)

#案例
dictionary = dict(赵飞='喜欢馒头',刘翔='喜欢锻炼',李萌='喜欢逛街')
print(dictionary)
#输出 {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢逛街'}

4、通过dict.fromkeys()方法创建空字典

#语法
dictionary = dict.fromkeys(list1)

#案例
name_list = ['赵飞','刘翔','李萌']
dictionary = dict.fromkeys(name_list)
print(dictionary)
#输出 {'赵飞': None, '刘翔': None, '李萌': None}

5、通过已经存在的元组和列表创建字典

注意:列表不能作为字典的键,会报错

name_tuple = ('赵飞','刘翔','李萌')
sign = ['喜欢馒头','喜欢锻炼','喜欢逛街']
dict1 = {name_tuple:sign}
print(dict1)
#输出为 {('赵飞', '刘翔', '李萌'): ['喜欢馒头', '喜欢锻炼', '喜欢逛街']}

字典的删除

1、通过del删除

del dictionary

2、通过字典对象的clear()方法

dictionary.clear()

3、通过字典对象的pop()方法,popitem()方法

字典的访问

1、通过print()函数

#打印整个列表
dictionary = {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢逛街'}
print(dictionary)

#通过键取到相应的值
print(dictionary['李萌'])#输出 喜欢逛街

#在实际开发中,我们不知道是否存在某键,可使用if语句判断
print('老王的爱好是:',dictionary['老王'] if '' in dictionary else '我的字典里没有此人')
#输出 老王的爱好是:我的字典里没有此人

2、使用dictionary.get()方法获取指定键的值

#语法
dictionary.get(key,[default])
#default为可选项,用于指定的键不存在时,返回的默认值

#案例
dictionary = {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢逛街'}
print('老王的爱好是:',dictionary.get('老王'))#输出 老王的爱好是: None
print('老王的爱好是:',dictionary.get('老王','我的字典里没有此人')) #输出 老王的爱好是: 我的字典里没有此人

字典的遍历

可以通过dictionary.items()方法将字典的键值对转成元组,在使用for循环遍历

dictionary = {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢逛街'}
for item in dictionary.items():
    print(item)
---------------脚本执行结果-----------------
('赵飞', '喜欢馒头')
('刘翔', '喜欢锻炼')
('李萌', '喜欢逛街')

#取出对应的键值对
for key,value in dictionary.items():
    print(key,'的爱好是:',value)
--------------脚本执行结果------------------
赵飞 的爱好是: 喜欢馒头
刘翔 的爱好是: 喜欢锻炼
李萌 的爱好是: 喜欢逛街

添加修改删除字典元素

#语法
dictionary[key] = value

#添加元素
dictionary = dict((('赵飞','喜欢馒头'),('刘翔','喜欢锻炼'),('李萌','喜欢逛街')))
dictionary['老王']='喜欢挖墙脚'
print(dictionary)
#输出 {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢逛街', '老王': '喜欢挖墙脚'}

#修改元素
#添加元素使用相同的键,相当于修改字典元素
dictionary['李萌']='喜欢买买买'
print(dictionary)
#输出 {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢买买买'}

#删除字典元素
del dictionary['老王']
print(dictionary)
#输出 {'赵飞': '喜欢馒头', '刘翔': '喜欢锻炼', '李萌': '喜欢买买买'}

#可使用if防止键不存在时删除元素报错
dictionary = dict((('赵飞','喜欢馒头'),('刘翔','喜欢锻炼'),('李萌','喜欢逛街')))
if '赵飞' in dictionary:
    del dictionary['赵飞']
print(dictionary)
#输出 {'刘翔': '喜欢锻炼', '李萌': '喜欢逛街'}

字典推导式

使用字典推导式可以快速生成一个字典

import random
random_dict = {i:random.randint(10,100) for i in range(1,5)} #生成4个10到100之内的随机数
print('生成的随机数为:',random_dict)
#输出 生成的随机数为: {1: 27, 2: 28, 3: 91, 4: 41}

学习来自:《python从入门到项目实践》明日科技 第十章
由Markdown书写的第一篇笔记
posted @ 2020-11-16 14:14  努力吧阿团  阅读(69)  评论(0)    收藏  举报