字典类型
1.用途:
存放多个由键值组成的键值对,可读,值可改
2,定义:
用{}内用逗号分开多个元素,每个元素都是以key:value的格式,其中value可以是任意类型,而key必须是不可变类型,通常是str类型,而且key不能重复
不可哈希就是可变,可哈希就是不可变
3、dict数据类型转换
字典只有转换成字符串的时候,才可以全部显示键值对。
如果字典转换成元组或者列表或者集合,都是默认生成的为键组成的元组或者列表或者集合。
通过dic.value() 获得值组成的元组或者列表或者集合,
也可以通过dic.items()获得键值而组成的元组或者列表或者集合。
dic = {'name': 'Zara', 'age': 7, 'class': 'First'}
print(str(dic)) # 转换字符,键值对全部转换 {'name': 'Zara', 'age': 7, 'class': 'First'}
print(list(dic)) # 转换列表,默认列表生成键 ['name', 'age', 'class']
print(list(dic.values())) # 获取值生成列表 ['Zara', 7, 'First']
print(list(dic.items())) # 获取键值对生成列表,为元组组成列表,即列表套元组 [('name', 'Zara'), ('age', 7), ('class', 'First')]
4、常用操作+内置方法
优先掌握操作:
4.1、按照key存取值:可存可取
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
print(dic['name']) # xiaofang
print(dic['age']) # 18
print(dic['hobby']) # Basketable
dic['name'] = "xiaoming"
print(dic) # {'name': 'xiaoming', 'age': 18, 'hobby': 'Basketball'}
dic['love'] = 'liu'
print(dic) # {'name': 'xiaoming', 'age': 18, 'hobby': 'Basketball','love':"liu"}
4.2、长度
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
print(len(dic)) # 3
4.3、成员运算
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
if 'name' in dic:
print("内部成员") # 内部成员
if "xiaofang" in dic['name']:
print("内部成员") # 内部成员
if "xiaoming" in dic.values():
print("内部成员") # 内部成员
4.4、删除
4.4.1、单纯删除:del dic[" "]
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
del dic['name']
print(dic) # {'age': 18, 'hobby': 'Basketball'}
4.4.2、取走:
dic.pop ( " " )括号内是要删除的key值,返回值为key对应的value
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
d = dic.pop("name")
print(d,dic) #xiaofang {'age': 18,'hobby': "Basketball"}
4.4.3、dic.popitem() 随机删除,删除后的值,返回key和value组成的元组
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
d = dic.popitem()
print(d,dic)
# ('hobby', 'Basketball') {'name': 'xiaofang', 'age': 18}
4.5、循环
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
for i in dic: #等同于 for i in dic.keys():
print(i) # 默认输出所有键
# name
# age
# hobby
for i in dic.values():
print(i) #输出所有键对应的值
# xiaofang
# 18
# Basketball
for i in dic.items(): #输出键值对从而形成的元组
print(i)
# ('name', 'xiaofang')
# ('age', 18)
# ('hobby', 'Basketball')
for x,y in dic.items(): #输出的元组分别赋值给x,y,解压赋值操作
print(x,y)
# name xiaofang
# age 18
# hobby Basketball
4.6get()如果key不存在,就默认返回None,也可以设置返回其他值
dic.get("name")
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
name = dic.get("name")
print(name) # xiaofang
num = dic.get('oho')
print(num) # None
nba = dic.get('nba','不存在')
print(num) # 不存在
需要掌握的操作:
4.7、dic.update({}) :更新,没有加入,有就更新,字典内可以有几个键值对
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
dic.update({"name":"xiaoming"})
print(dic)
# {'name': 'xiaoming', 'age': 18, 'hobby': 'Basketball'}
dic.update({'love':'liu'})
print(dic)
# {'name': 'xiaoming', 'age': 18, 'hobby': 'Basketball', 'love': 'liu'}
案例2
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
dic.update({'name':'小明','love':'liu'})
print(dic)
# {'name': '小明', 'age': 18, 'hobby': 'Basketball', 'love': 'liu'}
4.8、{}.formkeys(["1","2"], none) :根据前面列表快速生成key值
dic = {}.fromkeys((1,3),None)
print(dic) # {1: None, 3: None}
dic1 = {}.fromkeys([1,2],None)
print(dic1) # {1: None, 2: None}
4.9、dic.setdefault("name","xxx"):判断字典里面是否有个name这个key,有就不更改,没有就更新字典中的key,value,返回值为:key对应的value
dic = {
'name': "xiaofang",
'age': 18,
'hobby': "Basketball"
}
c = dic.setdefault('name','xiaoming')
print(dic,c)
# {'name': 'xiaofang', 'age': 18, 'hobby': 'Basketball'} xiaofang
d = dic.setdefault('love','liu')
print(dic,d)
# {'name': 'xiaofang', 'age': 18, 'hobby': 'Basketball', 'love': 'liu'} liu
字典总结:
存放多个值,无序,字典本身可变,字典的key不可变

浙公网安备 33010602011771号