字典是一种可变的容器,可以存储任意类型的数据
字典中的每个数据都是用"键" (key) 进行索引,而不像序列可以用下标进行索引
字典中的数据没有先后关系,字典的存储是无序的
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。key必须是不可变类型,如:数字、字符串、元组。
字典的表示方式是以{} 括起来,以冒号(:)分割的键值对,各键值对之间用逗号分隔开
字典的键一般是唯一的,如果重复最后的一个键值对会替换前面的
1.创建空字典:
d = {} # 空字典
d = dict() # 空字典
2.创建非空的字典:
dic1 = {'name': 'cgk', 'age': 20, 'sex': 'male'}
dic2 = dict((('name', 'cgk'),))
print (dic1,dic2)
键一般是唯一的,如果重复最后的一个键值对会替换前面的
值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。
3.字典增、删、改、查
a.增加
setdefault()
setfault函数用于设置键的默认值
若在字典中该键已经存在,则忽略设置;若不存在,则添加该键和值
a.setfault(键,值)
#增
dic1 = {'name': 'cgk'}
dic1['age'] = '20'
print(dic1)
#键存在,不改动,返回字典中相对应的键对应的值
a = dic1.setdefault('age', 30)
print(a)
print(dic1)
#键不存在,在字典中增加新的键值对,并返回相应的值
b = dic1.setdefault('hobby', 'girl')
print(b)
print(dic1)
a = {"姓名":'KR',"年龄":18
}
a["技能"] = 'python' # 字典增加操作
print(a)
# {"姓名":'KR',"年龄":18,"技能":"python"}
b.删除
a = {"姓名":'KR',"年龄":18,"技能":"python"
}
del a["技能"]
print(a)
# {"姓名":'KR',"年龄":18}
c.修改和update
a = {"姓名":'KR',"年龄":18,"技能":"python"
}
a['年龄'] = 88
print(a) # {"姓名":'KR',"年龄":88}
dic4 = {'name': 'cgk', 'age': '20', 'hobby': 'girl'}
dic5 = {1: "1", 'age': "30"}
dic4.update(dic5) #把dic5加进dic4里面,如果有重复的键,则覆盖
print(dic4)
#{'name': 'cgk', 'age': '30', 'hobby': 'girl', 1: '1'}
d.查找
a = {"姓名":'KR',"年龄":18,"技能":"python"
}
print(a['姓名'])
# "KR"
4.字典的操作方法
get()
用于从字典中获取指定键的值。在get函数中可以设置默认值。当get函数没有获取到对应键时,get函数将会将默认值返回。
a = {"姓名":'KR',"年龄":18
}
r = a.get("姓名")
print(r) # KR
r1 = a.get("技能")
print(r1) # None
r2 = a.get("技能","python")
print(r2) # python
keys()
keys函数将以列表的形式返回字典中的所有键
a = {"姓名":'KR',"年龄":18,"技能":{"技能1":"python","技能2":"JAVA"}
}
print(a)
print(a.keys()) # dict_keys(["姓名","年龄","技能"])
#只能获取到最外层字典对应键。嵌套的字典不会返回。
items()
items函数将以列表的形式返回字典中素有键值对
a = {"姓名":'KR',"年龄":18
}
r = a.items()
print(r) # dict_items([("姓名":'KR'),("年龄":18)])
values()
values函数将以列表的形式返回字典中所有的值
a = {"姓名":'KR',"年龄":18
}
r = a.values()
print(r) # dict_values('KR',18)
clear()清空字典
a = {"姓名":'KR',"年龄":18
}
a.clear()
print(a) # {}
print(len(a)) # 0
copy() 返回字典dic的副本,只复制一层(浅拷贝)
a = {"姓名":'KR',"年龄":18
}
b = a.copy()
print(b) # {"姓名":'KR',"年龄":18}
del b["姓名"]
print(b) # {"年龄":18}
print(a) # {"姓名":'KR',"年龄":18}
fromkeys()
fromkeys函数用于创建一个新的字典
参数1:是一个序列(列表、元组、集合),用于作为字典的键
参数2:可以是任何数据类型,作为每个键的值
a = {}
a.fromkeys(('姓名','年龄'))
print(a) # {}
b = a.fromkeys(('姓名','年龄'))
print(b) # {'姓名':None,'年龄':None}
c = a.fromkeys(('姓名','年龄'),666)
print(c) # {'姓名':666,'年龄':666}
d = a.fromkeys(('姓名','年龄'),(123,666))
print(d) # {'姓名':(123,666),'年龄':(123,666)}
pop()
pop函数用于从字典中移除指定键,并返回该键所对应的值
a = {"姓名":'KR',"年龄":18
}
#a.pop("姓名")
r = a.pop("姓名")
print(a) # {"年龄":18}
print(r) # KR
popitem()
popitem函数用于从字典中删除最后一项,并以元组形式返回该项所对应的键和值
a = {"姓名":'KR',"年龄":18
}
#a.popitem
r = a.popitem()
print(a) # {"姓名":'KR',}
print(r) # ("年龄":18) 返回值是被删除的数据,并且是元组形式
方法&函数 描述/dic代表字典对象
dic.clear() 清空字典
dic.pop(key) 移除键,同时返回此键所对应的值
dic…popitem() 随机删除一组键值对,同时返回对应的值
dic.copy() 返回字典dic的副本,只复制一层(浅拷贝)
dic.update(dic1) 将字典dic1合并到dic中,如果键相同,则此键的值取dic1的值作为新值
dic.get(key, default) 返回键key所对应的值,如果没有此键则返回default
dic.keys() 返回可迭代的dict_keys集合对象
dic.values() 返回可迭代的dict_values值对象
dic.items() 返回可迭代的dict_items对象
cmp(dict1, dict2) 比较两个字典元素
len(dict) 计算字典元素个数,即键的总数
str(dict) 输出字典可打印的字符串表示
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型