字典:在其他编程语言(如:Java)中称之为映射(Map),通过键值对(Key-value)存储数据,键值之间使用冒号“:”间隔,多个元素之间使用逗号间隔。
字典格式如下所示:
a ={name:"张三",age:20}
字典的特点:
- 字典元素必须为键值对出现,字典使用大括号{}。
- 字典键值对无序列
- 字典键必须是唯一值,不能重复。键支持的数据类型为:整数、字符串或元组
- 字典值可以使任意数据类型。如:字符串、整数、对象、字典本身等。
- 字典是一种可变容器模型数据类型。
- 字典通过键来读取元素
创建字典
- 使用大括号 { } 创建字典
#使用大括号 { } 创建空字典
emptydict = {}
print("创建空字典",emptydict)
#使用大括号 { } 创建字典,值使用的数据类型:字符串、数字、元组、字典。其他的类型不举例了。
alltypedict = {"name":"张三","age":18,"family":("爸爸","妈妈","爷爷","奶奶","妹妹"),"result":{"maths":90,"english":100,"PE":100}}
print("不同数据类型的值",alltypedict)
#使用大括号 { } 创建字典,主键支持整数、字符串或元组,字符串不举例
keydict = {10:[1,2,3],(10,20,30):"srt"}
print("不同类型的键",keydict)
- 内建函数 dict() 创建字典
#使用内置函数dict()创建空字典。
emptydict = dict()
print(emptydict)
#初始化新字典
initdict = dict({"name":"张三"})
print(initdict)
#通过dict()结合zip创建字典
list1 = [1,2,3]
str = "abc"
iterdict = dict(zip(str,list1))
print(iterdict)
#通过dict()结合关键字参数创建字典
keydict = dict(name="张三",age=18)
print(keydict)
- fromkeys()创建字典,支持将可迭代数据类型转换字典
fromkeys(Iterable,value):
参数说明:Iterable可迭代数据,可迭代数据类型有:元组、列表、字符串。
value:将可迭代数据转换成字典的key,对应的值,默认None。
#列表
list1 = [1,2,3]
listdict= dict.fromkeys(list1)
print(listdict)
#元组
tuple1 = (1,2,3)
tupledict= dict.fromkeys(tuple1)
print(tupledict)
#字符串
str1='abcedesf'
strdict= dict.fromkeys(str1,1)
print(strdict)
字典元素的增加
字典['key']:增加新的键/值对
#字典['key']:增加新的键/值对
user = {"name":"张三","age":18}
user["family"]=("爸爸","妈妈","爷爷","奶奶","妹妹")
print(user)
字典元素的删除
- del():删除指定的键值,也可以删除字典。
# del()根据键从字典中删除元素
del user["family"]
print("使用del删除family键值对,字典的值",user)
del user #清空字典
print("使用del删除字典:",user)
- clear()清空字典。
#字典['key']:增加新的键/值对
user = {"name":"张三","age":18,'family': ('爸爸', '妈妈', '爷爷', '奶奶', '妹妹')}
print("新字典",user)
# clear()清除字典中的所有元素。
user.clear()
print("清空字典:",user)
- pop():删除指定key的值,并且返回删除的值。
#字典['key']:增加新的键/值对
user = {"name":"张三","age":18,'family': ('爸爸', '妈妈', '爷爷', '奶奶', '妹妹')}
print("新字典",user)
# pop()删除一个关键字并返回它的值
pop_values = user.pop('family')
print("删掉的数据",pop_values)
- popitem():随机删除,并且返回删除的键值对。
#字典['key']:增加新的键/值对
user = {"name":"张三","age":18,'family': ('爸爸', '妈妈', '爷爷', '奶奶', '妹妹')}
print("新字典",user)
#popitem():随机删除,并且返回删除的键值对。
popitem_values = user.popitem()
print(popitem_values)
字典元素的修改
- 字典['key']:修改已有键/值对
#字典['key']:增加新的键/值对
user = {"name":"张三","age":18,'family': ('爸爸', '妈妈', '爷爷', '奶奶', '妹妹')}
print("新字典",user)
# 字典['key']:修改已有键/值对
user["family"]=("爸爸","妈妈","爷爷","奶奶")
print("修改后的字典",user)
- update():类似合并,将字典键值合并到另一个字典以覆盖相同键的值。
#字典['key']:增加新的键/值对
user = {"name":"张三","age":18,'family': ('爸爸', '妈妈', '爷爷', '奶奶', '妹妹')}
print("新字典",user)
# update()方法类似于合并,它把一个字典的键和值合并到另一个字典以覆盖相同键的值。
#使用字典更新字典
user.update({"name":"张三","age":18,'family': ('爸爸', '妈妈', '爷爷', '奶奶')})
print("修改后的字典",user)
#使用解包字典更新字典
user.update(**{'family': ('爸爸', '妈妈', '爷爷', '奶奶')})
print(user)
#使用关键字参数更新字典
user.update(family=("爸爸","妈妈","爷爷","奶奶"))
print(user)
拷贝代码运行时,将每种实现方式一一运行,其他多余代码请注释掉。