目录
一、字典概述
概念:字典是一个由一系列无序的键值对组成的可变序列,键和值之间建立了一种映射关系,使得可以通过键来快速查找对应的值。
写法:字典中的每一个元素由键(key)和对应的值(value)组成,键和值之间通过冒号(:)分隔,各个键值对之间则通过逗号(,)分隔。
二、字典的创建和删除
1、直接赋值法
dictname = {"name":"cxk","age":18,"gender":"男"}
print(dictname)
#输出结果为{'name': 'cxk', 'age': 18, 'gender': '男'}
2、通过字典函数dict创建字典
"""
通过字典函数创建字典语法格式为:dictionary = dict(zip(list1,list2))
list1是包含所有的键的列表,list2是包含所有值的列表。
"""
#首先创建两个列表,分别包含键和值。
keys_list = ["name","age","gender"]
values_list = ["cxk",18,"男"]
#然后利用dict函数创建列表,注意dict函数里还有一层压缩函数zip。
dictname = dict(zip(keys_list,values_list))
print(dictname) #输出结果为{'name': 'cxk', 'age': 18, 'gender': '男'}
3、通过给定的“键-值对”创建字典。
"""
通过”键-值对“创建字典的语法格式如下:
dictionary = dict(key1=value1,key2=value2,...,keyn=valuen)
"""
dictname = dict(name = "cxk",age = 18,gender = "男")
print(dictname) #输出结果为{'name': 'cxk', 'age': 18, 'gender': '男'}
4、删除字典使用del语句。
dictname = {"name":"cxk","age":18,"gender":"男"}
del dictname #字典dictname已被删除。
三、对字典的访问和遍历
1、访问字典
访问字典的值主要包含两种方法:
1、使用键访问字典,语法格式为:dictname[键],注意当键不存在时会报错。
2、使用get函数访问字典,语法格式为:dictname.get(键,默认值),当键不存在时会返回默认值,不会报错。
dictname = {"name":"cxk","age":18,"gender":"男"}
#1、使用键访问值
print(dictname["name"]) #输出"cxk"。
#2、使用get方法访问值
print(dictname.get("name")) #输出"cxk"。
print(dictname.get("hobby","唱跳rap篮球")) #键"hobby"不存在,所有返回默认值"唱跳rap篮球"。
2、遍历字典
a、遍历字典的键
访问字典的键主要有两种方法:
1、使用字典对象的keys()方法可以返回一个包含所有键的可迭代对象,然后使用for循环遍历这些键。
2、直接使用for循环循环字典。
dictname = {"name":"cxk","age":18,"gender":"男"}
#1、通过keys()函数遍历字典的键。
for key in dictname.keys():
print(key)
"""
输出结果为:name
age
gender
"""
#2、直接使用for循环字典遍历字典的键。
for key in dictname:
print(key)
"""
输出结果为:name
age
gender
"""
b、遍历字典的值
使用字典对象的values()方法可以返回一个包含所有值的可迭代对象,然后使用for循环遍历这些值。
dictname = {"name":"cxk","age":18,"gender":"男"}
for value in dictname.values():
print(value)
"""
输出结果为:cxk
18
男
"""
c、遍历所有的键值对
使用字典对象的items()方法可以返回一个包含所有键值对的可迭代对象,然后使用for循环遍历这些键值对,每个键值对表示为一个(key,value) 元组。遍历时,每次循环会取出一个元组。
dictname = {"name":"cxk","age":18,"gender":"男"}
for key,value in dictname.items():
print(key,value)
"""
输出结果为:
name cxk
age 18
gender 男
"""
四、字典的常见操作
字典的常见操作主要由四种,分别是增、删、改、查。
1、增
由于字典是可变序列,所有可以随时向其中添加"添加键值对"
向列表中添加键值对的语法格式如下:
dictname[key] = value
- dictname表示字典名称。
- key:表示要增加元素的键,必须是唯一的,并且不可变,例如可以是字符串、数字或者元组。
- value:表示元素的值,可以是任何数据类型,不是必须唯一。
dictname = {"name":"cxk","age":18,"gender":"男"}
dictname["hobby"] = "唱跳rap篮球"
print(dictname)
#输出结果为:{'name': 'cxk', 'age': 18, 'gender': '男', 'hobby': '唱跳rap篮球'}
2、删除
删除字典中的键值对的方法主要有以下几种:
1、del语句:直接使用del语句删除,语法格式为:del dictname[key]。
2、pop():删除指定键值对,并返回值,函数参数为键。
3、clear():清空字典,使字典成为空字典。
#1、使用del语句删除字典中指定的键值对
dictname = {"name":"cxk","age":18,"gender":"男","hobby":"唱跳rap篮球"}
del dictname["hobby"]
print(dictname)
#输出结果为: {'name': 'cxk', 'age': 18, 'gender': '男'}
#2、使用pop函数删除字典中指定的键值对,并返回相应的值。
dictname = {"name":"cxk","age":18,"gender":"男","hobby":"唱跳rap篮球"}
value = dictname.pop("hobby")
print(dictname) #输出结果:{'name': 'cxk', 'age': 18, 'gender': '男'}
print(value) #输出结果:"唱跳rap篮球"
#3、使用clear函数清空字典。
dictname = {"name":"cxk","age":18,"gender":"男","hobby":"唱跳rap篮球"}
dictname.clear()
print(dictname) #输出结果:{}
3、改
修改字典中的值的语法格式如下:
dictname[key] = newValue
dictname = {"name":"cxk","age":18,"gender":"男","hobby":"唱跳rap篮球"}
dictname["hobby"] = "好好学习,天天向上"
print(dictname)
#输出结果:{'name': 'cxk', 'age': 18, 'gender': '男', 'hobby': '好好学习,天天向上'}
4、查
字典的查找和字典的访问相同,直接通过键查找值,如果存在,就会返回相应的值,不存在则报错。
五、注意
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
- 字典的键值必须不可变,可以用数,字符串或元组充当。由于用列表的值是变化的,就不能作为键。