字典
字典
- 无序的可变序列。
- 以键值对保存内容。
- 键是唯一的,值可以有多个。
特点
- 通过键来读取值。
- 任意对象的无序集合。
- 字典可变,可嵌套。
- 键必须唯一,如果键出现两次,则最后一个值会替换前面的值。
- 键不可变
字典的创建
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书写的第一篇笔记
今天的学习是为了以后的工作更加的轻松!

浙公网安备 33010602011771号