1. 程式人生 > 實用技巧 >Python基礎(2)

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))