python基础知识—字典

字典:字典是一个无序的,可以修改的,元素呈键值对的形式,以逗号分割的,以大括号包围的序列。
字典的格式:
key : value 键值对
变量名={ key1 : value1 ,key2 : value2…}

注意:
1.使用的符号都是英文表示。
2.key必须是不可变数据类型。
一、字典的定义

dic = {'name': 'zs', 'age': 32, 'height': 1.65}
print(dic)
print(type(dic))  # <class 'dict'> # 注意定义变量的时候不能定义成dict

二、字典的key的类型只能是不可变数据类型(可哈希类型),value可以是任意数据类型
例:

dic = {'name': 'zs', 10: 32, (1, 2, 3): (2, 3, 4)}
print(dic)
dic = {'name': 'zs', 10: 32, [1, 2, 3]: (2, 3, 4)}
print(dic)  # 报错,因为[1,2,3]的类型是可变数据类型,key一定要是不可变数据类型

小知识点:
可变数据类型(不可哈希数据类型)
不可变数据类型(可哈希数据类型)
三、字典的增加操作
1、setdefault()
添加键值对,如果键在字典中已经存在了,就不会覆盖字典的中值

dic = {'name': 'zs', 'age': 10, 'height': 1.75}
dic.setdefault('weight', 170)#没有就添加进字典
dic.setdefault('weight', 180)#字典中有了不会覆盖
print(dic)  

2、根据key来设置值
如果key存在,就直接覆盖掉原有的值,如果不存在,添加新键值对。

dic = {'name': 'zs', 'age': 10, 'height': 1.75}
dic['weight'] = 180#字典中没有直接添加新键值对
dic['weight'] = 120 #通过key值修改覆盖
print(dic)

四、删除操作
1、 根据键删除键值对

dic = {'name': 'zs', 10: 1.75, 'weight': 129, 'age': 10}
dic.pop('name') 
print(dic)

2、 popitem() 随机删除一个键值对

dic = {'name': 'zs', 10: 1.75, 'weight': 129, 'age': 10}
dic.popitem() 
print(dic)

3、 清除字典中的所有键值对,只剩下{}

dic = {'name': 'zs', 10: 1.75, 'weight': 129, 'age': 10}
dic.clear() 
print(dic)#只剩下{}

4、del 直接从内存中删除变量,效果就是报错,

dic = {'name': 'zs', 10: 1.75, 'weight': 129, 'age': 10}
del dic
print(dic)

del 也可以根据键删除。

dic = {'name': 'zs', 10: 1.75, 'weight': 129, 'age': 10}
del dic['name']
print(dic)

五、修改操作
dic = {‘name’: ‘zs’, ‘weight’: 129, ‘age’: 10}
1、根据键来修改值

dic = {'name': 'zs', 'weight': 129, 'age': 10}
dic['name'] = '赵四'
print()

2、update()
需要传递一个字典,如果key相同就直接修改对应的value,如果key不存在
就直接添加键值对

dic = {'name': 'zs', 'weight': 129, 'age': 10}
dic1 = {'name': '赵四', 'height': 1.75}
dic.update(dic1)
print(dic)

六、查找操作
dic = {‘name’: ‘zs’, ‘weight’: 129, ‘age’: 10}
1、get()
根据键获取对应的值,我们可以定义一个变量来就是返回的值

dic = {'name': 'zs', 'weight': 129, 'age': 10}
value = dic.get('name')  
print(value)

2、keys()获取所有的键

dic = {'name': 'zs', 'weight': 129, 'age': 10}
ret = dic.keys()
print(ret)

3、values()获取所有的值

dic = {'name': 'zs', 'weight': 129, 'age': 10}
values = dic.values()  
print(values)

4、items()将字典返回列表套元组的形式

dic = {'name': 'zs', 'weight': 129, 'age': 10}
ret = dic.items()
print(ret)
#dict_items([('weight', 129), ('name', 'zs'), ('age', 10)])

5、len()用来计算键值对的个数

dic = {'name': 'zs', 'weight': 129, 'age': 10}
ret = len(dic)

6、fromkeys()元组转换成值为Noen的字典,Noen可以自定义

tup = (1, 2, 3)
ret = dict.fromkeys(tup)#把元组转换成值为Noen的字典
ret = dict.fromkeys(tup, 'aa')#把元组转换成值为'aa'的字典
print(ret)

七、in 和 not in

dic = {'name': 'zs', 'weight': 129, 'age': 10}
keys = dic.keys()
print(keys)
 if 'name' not in keys:
     dic['name'] = '赵四'
else:
     dic['name'] = '尼古拉斯'
     print(dic)

in和not in同样作用,意思相反
小知识点:

 dic = {'name': 'zs', 'weight': 129, 'age': 10}
for key in dic:
    print(key)#取出所有键
print(dic.items())#字典转列表套元组
for item in dic.items():
    print(item)#取出里面的键值对
for key, value in dic.items():
    print(key, value)#取出里面的键和值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值