1. 程式人生 > >python語言中的資料型別之字典

python語言中的資料型別之字典

資料型別

字典型別dict
  • 用途:記錄多個值,列表是索引對應值,而字典是key對應值,其中key對value有描述性

  • 定義方式:在{ }用逗號分隔開多個元素,每個元素都是key:value形式,其中key是不可變型別,通常是字串型別,而value是任意型別。

  • 型別轉換:

    d=dict(x=1,y=2,z=3)
    print(d)
    print(type(d))
    #第一種型別轉換
    items=[('name','egon'),('age',18),('gender','male')]
    d={}
    for item in items:
        d[item[0]]
    =item[1] print(d) #列表轉換成字典 第二種 items=[('name','egon'),('age',18),('gender','male')] d=dict(items) print(d) #第三種方法 ​ ​ # 瞭解 keys=['name','age','gender','height','weight'] # d={} # for key in keys: # d[key]=None ​ d={}.fromkeys(keys,None) print(d,type(d))

     

常用操作+內建方法

1.按key存取值:可存可取

dic={'
name':'egon','age':18} print(dic['name']) #這是按key 取 value值 如果key錯誤程式會報錯 dic['name']='EGON' print(dic) #按key存值 根據key存入'EGON' (value) dic['gender']='male' print(dic) #如果存入的key在字典中沒有就會新增新的key:value ###在列表中如果索引沒有新增的話會報錯 l=['a','b','c'] l[0]='A' print(l) l[4]='AAA' print(l)

 

2.長度  len

dic={'
name':'egon','age':18} print(dic) print(len(dic))

 

3.成員運算   in 和  not  in

字典的成員運算是以字典的key為準的,如果找不到key則會顯示False

dic={'name':'egon','age':18}
print('name'in dic)    #  True
print('egon'in dic)    #  False

 

4.刪除    del/pop/

dic={'name':'egon','age':18}
del dic['name']
print(dic)
#del  的運用
​
dic={'name':'egon','age':18}
res=dic.pop('name')
print(dic)
print(res)
#pop  pop的返回值是與之對應的value值
​
ic={'name':'egon','age':18}
res=dic.popitem()
print(res)
print(type(res))
print(dic)
('age', 18)
<class 'tuple'>
{'name': 'egon'}
#popitem()  刪除字典中的元組

 

5.鍵keys( ),值values(),鍵值對items()

在python2中對應的鍵keys(),values(),items()

#在python2中keys(),values(),items()會將全部對應值輸出
>>> dic={'name':'egon','age':18}
>>> dic.keys()
['age', 'name']
>>> dic.values()
[18, 'egon']
>>> dic.items()
[('age', 18), ('name', 'egon')]
>>>#在python3中
>>> dic={'name':'egon','age':18}
>>> dic.keys()
dict_keys(['name', 'age'])
>>> dic.values()
dict_values(['egon', 18])
>>> dic.items()
dict_items([('name', 'egon'), ('age', 18)])

 

6.迴圈

dic={'name':'egon','age':18}
for k in dic:
    print(k)
#在字典中不加任何操作迴圈是迴圈key
dic={'name':'egon','age':18}
for k in dic.keys():    #迴圈keys
    print(k)
for v in dic.values():  #迴圈values
    print(v)
for k,v in dic.items(): #k,v=('name', 'egon')
    print(k,v)          #迴圈key:value

 

需要掌握的操作

7.update   更新

dic={'name':'egon','age':18}
dic.update({'height':175,'weight':180})
print(dic)
{'name': 'egon', 'age': 18, 'height': 175, 'weight': 180}
#語法    字典1.update(字典2)
#會將兩個字典中相同的key:value保留,不同的新增到字典1
dic={'name':'egon','age':18}

 

8.setdefault

Python 字典 setdefault() 函式和get() 方法類似, 如果鍵不存在於字典中,將會新增鍵並將值設為預設值

#當key存在時,不改原值,返回原值
dic={'name':'egon','age':18}
res=dic.setdefault('name','EGON')
print(dic)
print(res)
{'name': 'egon', 'age': 18}
egon
​
#當key不存在時,增加新值
dic={'name':'egon','age':18}
res=dic.setdefault('gender','male')
print(dic)
print(res)
{'name': 'egon', 'age': 18, 'gender': 'male'}
male

 

###字典無序  可變