10、字典dict
字典(dict)
字典是有序,键不重复,元素只能是键值对的可变的容器
dict = {'k1':'v1','k2':'v2'}
- 容器
- 元素必须键值对
- 键不重复,重复则会被覆盖
data = {'k1':'1','k1':'2'}
print(data) #{'k1': '2'}
一般什么情况下用到字典?当我们需要表示一组信息时,字典可以表现的更直观
dict = [{'user':'ccc','pwd':'123'},{'user':'ddd','pwd':'asd123'}]
独有功能
info = {'age':'12','name':'admin','status':True}
data1 = info.get('name')
print(data1) #admin
data2 = info.get('email')
print(data2) #None
data3 = info.get('hobby',123)
print(data3) #123
- 所有的键
info = {'age':20,'name':'ccc','pwd':'asd123'}
data = info.keys()
print(data) #dict_keys(['age', 'name', 'pwd'])
#keys()也可以被循环显示
info = {'age':20,'name':'ccc','pwd':'asd123'}
for item in info.keys():
print(item)
- 所有的值
info = {'age':20,'name':'ccc','pwd':'asd123'}
data = info.values()
print(data) #dict_values([20, 'ccc', 'asd123'])
#values()也可以被循环显示
info = {'age':20,'name':'ccc','pwd':'asd123'}
for item in info.values():
print(item)
- 所有的键值
info = {'age':20,'name':'ccc','pwd':'asd123'}
data = info.items()
print(data) #dict_items([('age', 20), ('name', 'ccc'), ('pwd', 'asd123')])
info = {'age':20,'name':'ccc','pwd':'asd123'}
for item in info.items():
print(item)
公共功能
- 长度
info = {'age':20,'name':'ccc','pwd':'asd123'}
data = len(info)
print(data) #3
- 是否包含
info = {'age':20,'name':'ccc','pwd':'asd123'}
d1 = 'name' in info
print(d1) #True
#判断键是否在里面
info = {'age':20,'name':'ccc','pwd':'asd123'}
if 'ccc' in info.values():
print('ccc在里面')
else:
print('ccc不在里面')
- 索引(键)
字典不同于元组和列表,字典的索引是键
info = {'age':12,'status':True,'name':'ccc'}
print(info['age']) #12
print(info['name']) #ccc
print(info['status']) #True
- 根据键 修改值 和 添加值 和 删除键值对
#添加值 info = {'age':12,'status':True,'name':'ccc'} info['gender'] = '男' print(info) #{'age': 12, 'status': True, 'name': 'ccc', 'gender': '男'} #修改值 info = {'age':12,'status':True,'name':'ccc'} info['age'] = 18 print(info) #{'age': 18, 'status': True, 'name': 'ccc'} #删除值 info = {'age':12,'status':True,'name':'ccc'} del info['age'] print(info) #{'status': True, 'name': 'ccc'}
速度快
info = { 'ccc':['铁锤','肝胆'], '老大爷':['傻蛋','蠢蛋'] } if 'ccc' in info: print('在')
info = { 'ccc':['铁锤','肝胆'], '老大爷':['傻蛋','蠢蛋'] } d1 = info['ccc'] d2 = info.get('ccc')
嵌套
- 字典的键必须可哈希(list/set/dict不可哈希)
info = {(11,22):123}
- 字典的值是可以任意类型(这个值是可哈希的,否则会报错)
info ={'k1':{12,2,5},'k2':{'x1':'xxx'}}

浙公网安备 33010602011771号