"""
1、字典是另一种可变容器模型,且可存储任意类型对象。
2、字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中
3、字典是无序的(不能通过索引取值)
4、字典的键是惟一的
"""
创建和删除
# 创建字典
"""
1、字典的键(key)是唯一的,必须是不可变类型的(字符串,整形,元组),不能是可变类型的(列表,字典)。详见可变和不可变类型
"""
dic = {1: 1, 2: 2, 3: 3, 4: 'a'}
# 打印内容
print(dic)
# 打印类型
print(type(dic))
# 删除
del dic
字典操作
"""字典查询
1、字典是无序的,不能通过位置(索引查找),只能通过键(key)查询
"""
dic = {1: 1, 2: 2, 3: 3, 4: 'a'}
print(dic) # 输出字典全部内容
print(dic[4]) # 取键4对应的值
"""增加
1、往字典中添加内容
"""
# 没有就增加,有就重新赋值
dic['name'] = 'abc'
print(dic)
# 没有就增加,有就不改变(设置默认)并且返回键对应的值
dic.setdefault('age', 18)
r = dic.setdefault('name', 'aaa')
print(r)
"""修改
1、和查询类似,只是在查询上增加赋值操作
"""
# 根据键(key)修改
dic[1] = 'a'
print(dic)
# 将两个字典合并,重复的会被覆盖,不存在的添加
dic1 = {1: 1, 2: 'c', 'hobby': 'girl'}
dic.update(dic1)
print(dic)
"""
1、删除字典中的内容
"""
# 根据键删除
del dic['name']
print(dic)
# pop,通过键(key)删除,并返回删除的值
r1 = dic.pop('age')
print(r1)
print(dic)
# 随机删除(实际效果感觉是删除最后一组键值对,并非随机)
r2 = dic.popitem()
print(r2)
print(dic)
# 清空字典
dic.clear()
print(dic)
# 删除字典
del dic
字典其他操作
# 其他字典操作
# fromkeys
"""
1、创建字典
2、如果创建时值时列表,因为深浅拷贝的原因,修改字典中一个键对应的列表中的一个值,会修改所有的值
"""
dic1 = dict.fromkeys(['a', 'b', 'c'], 'test')
print(dic1)
dic2 = dict.fromkeys(['a', 'b', 'c'], ['test1', 'test2', 'test3'])
print(dic2)
dic2['a'][1] = 'abc'
print(dic2)
# sorted
"""
1、排序规则和列表类似,根据键(key)排序
2、根据值排序
3、并不改变字典原来的顺序,只是返回的值时排序好的
"""
dic3 = {2: 2, 1: 1, 3: 3}
print(sorted(dic3))
print(sorted(dic3.values()))
print(sorted(dic3))
print(dic3)
# 遍历
"""
1、使用for循环遍历,默认打印键(key)
2、使用for循环遍历,打印值
"""
dic4 = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
for i in dic4:
print(i)
print(dic4[i]) # 取值方法1,省内存,效率高
for k, v in dic4.items(): # 取值方法2
print(k, v)
正文完