Python基礎(2)
阿新 • • 發佈:2020-08-16
目錄:
一、字典
二、元祖
正文
一、字典
字典
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))