Python基础(2)
目录:
一、字典
二、元祖
正文
一、字典
字典
d = {
‘username‘:‘xiaohei‘,
‘id‘:1,
‘grand‘:‘天马座‘,
‘addr‘:‘北京‘,
‘age‘:29
}
1、增加
d = {
‘username‘:‘xiaohei‘,
‘id‘:1,
‘grand‘:‘天马座‘,
‘addr‘:‘北京‘,
‘age‘:29
}
#增:2个方法
d[‘money‘] = 500
d.setdefault(‘car‘,‘bmw‘)
print(d)
d[‘username‘] = 123 #重复key,value覆盖
d.setdefault(‘grand‘,‘bmw‘) #存在key,value无效
print(d)
2、查询
d = {
‘username‘:‘xiaohei‘,
‘id‘:1,
‘grand‘:‘天马座‘,
‘addr‘:‘北京‘,
‘age‘:29
}
#取值:2个方法
print(d[‘addr‘])
print(d.get(‘username‘))
print(d)# print(d[‘addrs‘]) #不存在的key报错
print(d.get(‘usernames‘)) #不存在的key返回None
print(d.get(‘sex‘,‘男‘)) #get取不存在的key返回默认值
3、删除
#删除 print(d) d.pop(‘username‘) del d[‘addr‘] print(d)

4、其他方法
1)取出字典所有key到一个list中
取出字典所有values到一个list中
print(d.keys())#取出字典所有key到一个list中 print(d.values())#取出字典所有values到一个list中

2)向字典里更新值
d = {
‘username‘:‘xiaohei‘,
‘id‘:1,
‘grand‘:‘天马座‘,
‘addr‘:‘北京‘,
‘age‘:29
}
d.update(a=1,b=2)#向字典里更新值
print(d)
3)清空clear()
d.clear()#清空 print(d)

4)判断key是否存在
users = {
‘fd‘:‘123456‘,
‘xzh‘:‘45678‘
}
username = ‘fd‘
# 判断key是否存在
print(username in users.keys())
print(username in users) #判断key是否存在,比keys()少一步转成list
#users.has_key(username)#python2
5)取key和value值
#直接取到key和value
print("转成二维数组后取")
print(d.items()) # 转成二维数组
for k,v in d.items():
print(k,v)
print("")
print("根据key取:")#性能好
for k in d:
print(k,d.get(k))
练习:录入学生
users = {
‘fd‘:‘1234‘,
‘lhy‘:‘456‘
}
for i in range(3):
username = input(‘username:‘).strip()
password = input(‘password:‘).strip()
cpwd=input(‘cpwd:‘).strip()
if username==‘‘ or password==‘‘ or cpwd==‘‘:
print("不能为空")
elif password!=cpwd:
print("两次输入不一致")
else:
users[username]=password
print("注册成功")
print(users)
break
else:
print(‘输入错误次数过多‘)
5、list字典嵌套
info = {
‘lgy‘:{
‘age‘:18,
‘addr‘:‘beijing‘,
‘car‘:[‘bmw‘,‘ben-z‘,‘audi‘],
},
‘fd‘:{
‘house‘:{
‘bj‘:[‘海淀区‘,‘昌平区‘,‘朝阳区‘,‘西城区‘],
‘sh‘:[‘静安区‘,‘闸北区‘]
},
‘money‘:5000
}
}#lgy买了一辆五菱宏光
#fd卖了北京昌平的房子钱增加了400 0000
info[‘lgy‘][‘car‘].append("五菱宏光")
info[‘fd‘][‘house‘][‘bj‘].remove(‘昌平区‘)
info[‘fd‘][‘money‘]+=4000000
print(info)
#fd在重庆江北区买了房子
#info[‘fd‘][‘house‘][‘cq‘]=[‘江北区‘] #info[‘fd‘][‘house‘].update(cq=[‘江北区‘]) info[‘fd‘][‘house‘].setdefault(‘cq‘,[‘江北区‘]) print(info)
{‘lgy‘: {‘age‘: 18, ‘addr‘: ‘beijing‘, ‘car‘: [‘bmw‘, ‘ben-z‘, ‘audi‘, ‘五菱宏光‘]}, ‘fd‘: {‘house‘: {‘bj‘: [‘海淀区‘, ‘朝阳区‘, ‘西城区‘], ‘sh‘: [‘静安区‘, ‘闸北区‘], ‘cq‘: [‘江北区‘]}, ‘money‘: 4005000}}
二、元祖
l = (1,2,3,4,5)
元祖是不可变的列表
元祖一旦被创建,不能改变里面的值
只有2个方法
li = (‘118.24.3.40‘,‘root‘,‘123456‘,‘3306‘) #只有2个方法 print(li.index(‘root‘)) print(li.count(‘root‘))

备注:只有一个元素的元祖要加逗号
t = (‘abc‘) #只有一个元素不是元祖 m = (‘abc‘,) #只有一个元素的元祖加逗号 print(t,type(t)) print(m,type(m))

