python-字典
python3.6之后字典就是有序的了 。。。。之前的是无序的
字典:帮助用户去表示一个事物的信息(事物是有多个属性)
info={'name':'yang','age':18,'gender':'男'} #创建字典 key value形式 print('名字:',info['name']) #调用 print('年龄:',info['age'])
名字: yang 年龄: 18
字典独有的功能
info={'name':'yang','age':18,'gender':'男'} info.keys() #获取字典中所有的键 info.values() #获取字典中所有键 info.items() #获取字典中所有键值对 for i in info.keys(): #获取所有的键 print(i) for i in info.values(): #获取所有的值 print(i) for v1,v2 in info.items(): #获取键值 print(v1,v2) name yang age 18 gender 男
公共功能
len
len
info={'name':'yang','age':18,'gender':'男'} print(len(info))
3
索引
info={'name':'yang','age':18,'gender':'男'} print(info['name'])
yang
修改字典
#修改值 info={'name':'yang','age':18,'gender':'男'} info['age']=19 #修改键 一般都是要先删除在增加
del info['name']
info['name']='xyang'
删除
info={'name':'yang','age':18,'gender':'男'} del info['name']
将字符串转换成字典
info={} message="k1|v1,k2|v2,k3|v3" for i in message.split(','): v1,v2=i.split('|') info[v1]=v2 print(info)
{'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
数据嵌套方式
info={ 'k1':'v1', 'k2':True, 'k3':1, 'k4':(11,22), 'k5':[11,22], 'k6':{'kk','vv'}, 1:{'kk'}, False:{'kk'}, #[11]:{'kk'} #不可哈希 列表是可变的,字典中不可以放可变类型(key) (11):{'kk'}, #{'k1':'v2'}:{'kk','vv'},#不可哈希 }
嵌套数据 获取数值,以及插入
data=[1,2,{'k1':1,'k2':2,'k3':(11,22,33),'k4':[1,2,(3,4),2,3]},2] #获取3print(data[2]['k4'][2][0])
#k4 0的位置插入9
data[2]['k4'].insert(0,9) print(data)
练习:登录
user=[{'user': '123', 'passwd': 'adsf'}, {'user': '123', 'passwd': '123'}, {'user': 'adsf', 'passwd': 'asdf'}] username=input('请输入用户名:') userpass=input('请输入密码:') message="登录失败" for i in user: if i['user'] == username and i['passwd'] == userpass: message = '登录成功' break print(message)
get获取索引数据
#索引不存在会报错 info={'k1':'v1','k2':'v2'} #获取字典索引取值 k存在就取,没有就返回空,或者返回默认值 #v2=info.get('k1111',6666) #返回666 v3=info.get('k1111') #返回None, 空 print(v3)
None
if配合
result=info.get('k1111')
if result ==None:
print('不存在')
if result:
print('存在')
else:
print('不存在')
update
info ={'k1':'v1','k2':'v2'}
#不存在,则添加,存在,则更新 info.update({'k3':'v3','k4':'v4','k2':66666}) print(info)
{'k1': 'v1', 'k2': 66666, 'k3': 'v3', 'k4': 'v4'}