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'}}

 

posted @ 2021-03-11 13:54  tonitaka  阅读(185)  评论(0)    收藏  举报