Python 基礎數據類型之dict

字典是另外一種可變容器模型,且可存儲任意類型對象。
字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式以下所示:
d = {key1 : value1, key2 : value2 }
鍵必須是惟一的,但值則沒必要。
值能夠取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。python

一、字典的定義

dict1 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict2 = {'abc': 456};
dict3 = {'abc': 123, 10: 20};
dict4 = {} #定義空字典
dict5 = dict() #定義空字典

 

二、字典的訪問

  字典的索引就是字典的鍵值數組

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];

#運行結果
dict['Name']:  Zara
dict['Age']:  7

 

三、修改字典條目

  鍵值存在則更改原Value值,鍵值不存在則增長新的鍵值對ide

dict = {"one": 1, "two": 2, "three": 3, };

dict['one'] = 100;  # 如存在,則更新存在的條目
dict['four'] = 4;  # 如不存在則添加新條目

print "dict['one']: ", dict['one'];
print "dict['four']: ", dict['four'];
print dict

#運行結果
dict['one']:  100
dict['four']:  4
{'four': 4, 'three': 3, 'two': 2, 'one': 100}

 

四、刪除字典

  刪除包括:刪除單個元素、刪除全部元素、刪除整個字典函數

dict = {"one": 1, "two": 2, "three": 3,};

del dict['one'];  # 刪除鍵是'Name'的條目
print dict
dict.clear();  # 清空詞典全部條目
print dict
del dict;  # 刪除詞典
# print dict #此句會報TypeErro錯,應爲字典已經不存在了

#運行結果
{'three': 3, 'two': 2}
{}

五、字典的經常使用方法

一、 dict.clear() #刪除字典內全部元素spa

dict = {'Name': 'yang', "age": 20}
print dict
dict.clear()
print dict

#running result
{'age': 20, 'Name': 'yang'}
{}
View Code

二、 dict.copy() #返回一個字典的淺複製3d

三、 dict.fromkeys(seq[, val]) #建立一個新字典,以序列 seq 中元素作字典的鍵,val 爲字典全部鍵對應的初始值code

seq = ('name', 'age', 'sex')

dict = dict.fromkeys(seq)
print "New Dictionary : %s" % str(dict)

dict = dict.fromkeys(seq, 10)
print "New Dictionary : %s" % str(dict)

#運行結果
New Dictionary : {'age': None, 'name': None, 'sex': None}
New Dictionary : {'age': 10, 'name': 10, 'sex': 10}
View Code

四、 dict.get(key, default=None) #返回指定鍵的值,若是值不在字典中返回default值對象

dict = {'Name': 'yang', 'Age': 27}

print "Value : %s" %  dict.get('Age')  # 有則返回Value值
print "Value : %s" %  dict.get('Sex', "Never") # 沒有則返回給定的Value值
print "Value : %s" %  dict.get('Sex') # 沒有給定Value 返回NONE

#運行結果
Value : 27
Value : Never
Value : None
View Code

五、 dict.has_key(key) #若是鍵在字典dict裏返回true,不然返回falseblog

dict = {'Name': 'yang', 'Age': 27}

print "Value : %s" %  dict.has_key('Age')
print "Value : %s" %  dict.has_key('Sex')

#運行結果
Value : True
Value : False
View Code

六、 dict.items() #以列表返回可遍歷的(鍵, 值) 元組數組
  dict.iteritems(self) #生成一個包含全部鍵值對的可迭代對象
  dict.viewitems(self) # 功能和iteritems相似,可是能體現出變化的值索引

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

print "字典值 : %s" % dict.items()

# 遍歷字典列表
for key, values in dict.items():
    print key, values

# 遍歷可迭代的對象 iteritems實現
for key, values in dict.iteritems():
    print key, values

# 遍歷可迭代的對象 viewitems實現
for key, values in dict.viewitems():
    print key, values

#運行結果
字典值 : [('aaa', 'www.aaa.com'), ('bbb', 'www.bbb.com'), ('ccc', 'www.ccc.com')]
aaa www.aaa.com
bbb www.bbb.com
ccc www.ccc.com
aaa www.aaa.com
bbb www.bbb.com
ccc www.ccc.com
aaa www.aaa.com
bbb www.bbb.com
ccc www.ccc.com
View Code

七、 dict.keys() #以列表返回一個字典全部的鍵
  dict.iterkeys(self) #返回一個包含全部鍵的可迭代對象
  dict.viewkeys(self) # 功能和iterkeys相似,可是能體現出變化的值

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

print "鍵 : %s" % dict.keys()

# 遍歷字典列表
for key in dict.keys():
    print ("dict.keys(): %s" % key)

# 遍歷可迭代的對象 iteritems實現
for key in dict.iterkeys():
    print ("dict.iterkeys(): %s" % key)

# 遍歷可迭代的對象 viewitems實現
for key in dict.viewkeys():
    print ("dict.viewkeys(): %s" % key)

#運行結果
鍵 : ['aaa', 'bbb', 'ccc']
dict.keys(): aaa
dict.keys(): bbb
dict.keys(): ccc
dict.iterkeys(): aaa
dict.iterkeys(): bbb
dict.iterkeys(): ccc
dict.viewkeys(): aaa
dict.viewkeys(): bbb
dict.viewkeys(): ccc
View Code

八、 dict.values() #以列表返回字典中的全部值
  dict.itervalues(self) 返回一個包含全部Value的可迭代對象
  dict.viewvalues(self) # 功能和itervalues相似,可是能體現出變化的值

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

print "Value值 : %s" % dict.values()

# 遍歷字典列表
for value in dict.values():
    print ("dict.values(): %s" % value)

# 遍歷可迭代的對象 iteritems實現
for value in dict.itervalues():
    print ("dict.itervalues(): %s" % value)

# 遍歷可迭代的對象 viewitems實現
for value in dict.viewvalues():
    print ("dict.viewvalues(): %s" % value)

#運行結果
Value值 : ['www.aaa.com', 'www.bbb.com', 'www.ccc.com']
dict.values(): www.aaa.com
dict.values(): www.bbb.com
dict.values(): www.ccc.com
dict.itervalues(): www.aaa.com
dict.itervalues(): www.bbb.com
dict.itervalues(): www.ccc.com
dict.viewvalues(): www.aaa.com
dict.viewvalues(): www.bbb.com
dict.viewvalues(): www.ccc.com
View Code

九、 dict.setdefault(key, default=None) #和get()相似, 但若是鍵不存在於字典中,將會添加鍵並將值設爲default

#!/usr/bin/env python
# -*- coding:utf-8 -*-
dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}
a = dict.setdefault("aaa")  # 有該鍵則返回Value值
b = dict.setdefault("ddd","www.ddd.com") #沒有該鍵 則在字典中添加,並返回給定的值
print a, b
print dict

#運行結果
www.aaa.com www.ddd.com
{'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com', 'ddd': 'www.ddd.com'}
View Code

十、dict.update(dict2) #把字典dict2的鍵/值對更新到dict裏

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}
dict2 = {100:100}
dict.update({"ddd":"www.ddd.com"})
print dict
dict.update(dict2)
print dict

#運行結果
{'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com', 'ddd': 'www.ddd.com'}
{100: 100, 'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com', 'ddd': 'www.ddd.com'}
View Code

十一、dict.pop(key[,default]) #刪除字典給定鍵 key 所對應的值,返回值爲被刪除的值。key值必須給出。 不然,返回default值。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}
print dict.pop("aaa") # 若是鍵存在,則在字典中刪除對應鍵值對,並返回Value值
print dict.pop("ddd", "www.ddd.com") #若是鍵不存在,則返回給定的默認Value值
print dict

# 運行結果
www.aaa.com
www.ddd.com
{'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}
View Code

十二、dict.popitem() 隨機返回並刪除字典中的一對鍵和值。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}
a = dict.popitem()

print a  # 隨機刪除的鍵值對
print dict # 打印隨機刪除一個鍵值對後的字典

#運行結果
('aaa', 'www.aaa.com')
{'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}
View Code

 

6.字典的內置函數 

一、 cmp(dict1, dict2) #比較兩個字典元素。二、 len(dict) #計算字典元素個數,即鍵的總數。三、 str(dict) #輸出字典可打印的字符串表示。四、 type(variable) #返回輸入的變量類型,若是變量是字典就返回字典類型。

相關文章
相關標籤/搜索