Python學習之字典(dictionary)

以下是根據《python基礎教程(第2版.修訂版)》整理的有關python中字典的相關函數的使用方法和注意事項。

# -*- coding: utf-8 -*-這個可以支持中文註釋
"""
Created on Wed Jan  3 15:58:01 2018

@author: douyh
"""

'''*************************chapter 4: dictionary***************************'''
print('---------------This is for chapter 4 dictionary----------------------')
###How to create a dict###
a={'A':'a','B':'b',1:1}
b=dict(A='a',B=2,C=1)#等號前面不能用數字。雖然等號之前沒有用引號,但是也是字符串
print(a,'\n',b)
#no.1
'''
方法:clear
對象:字典
作用:清除字典中的所有項,與{}不同的是{}是直接改變綁定關係,對關聯的字典不會有影響
原地操作:是
'''
print('1.clear')
a={'A':'a','B':'b'}
b=a
a.clear()#會修改b
#a={}#不會修改b
print(a)
print(b)
#no.2
'''
方法:copy
對象:字典
作用:淺複製
原地操作:替換不是,增刪是
'''
print('2.copy')
from copy import deepcopy
a={}
a={'A':['a','A'],'B':'b','C':'c'}
b=a.copy()
c=deepcopy(a)#deepcopy
b['A'].remove('a')
print(a,'\n',b,'\n',c)
#no.3
'''
方法:fromkeys
對象:字典
作用:fromkeys方法是使用給定的鍵創建新的字典,每個鍵都對應了默認的值None
原地操作:有返回值
'''
print('3.fromkeys')
print(dict.fromkeys(['name','age']))
print(dict.fromkeys(['name','age'],'uknown'))#可以修改默認值
#no.4
'''
方法:get
對象:字典
作用:get方法是一個更寬鬆的訪問字典的方法,如果試圖訪問字典中不存在的項時,沒有任何
    異常,而得到了None值,還可以定義自定義的值替換None
原地操作:
'''
print('4.get')
d={}
print(d.get('A'),d.get('a','no'))
#no.5
'''
方法:has_key,在Py3.0中已經沒有了
對象:字典
作用:
原地操作:
'''
print('5.has_key')
#no.6
'''
方法:items和iteritems
對象:字典
作用:items方法將字典所有的項以列表的形式返回,列表中每一個項都表示爲‘對’的形式,但
    並沒有特定的次序;而iteritems作用相同,只是返回迭代器而非列表,並更高效
原地操作:否
'''
print('6.items and iteritems')
a={'A':'a','B':'b'}
print(a.items())
#print(list(a.iteritems()))#py3中iteritems報錯
#no.7
'''
方法:keys 和 iterkeys
對象:字典
作用:keys方法將字典中的鍵以列表形式返回,而後者則返回針對鍵的迭代器
原地操作:
'''
print('7.key')
a={'A':'a','B':'b'}
print(a.keys())#沒有iterkeys in py3
#no.8
'''
方法:pop
對象:字典
作用:pop方法用來獲取給定鍵的值,然後將這個鍵-值對從字典中移除,注意一定要有輸入。
    一次只能取出一個來
原地操作:是,且有返回。
'''
print('8.pop')
a={'A':'a','B':'b','C':'c'}
a.pop('A','B')#只能取出'a'
print(a)
#no.9
'''
方法:popitem
對象:字典
作用:隨機彈出一個項,相對pop更高效,因爲不用首先獲取鍵的列表,字典中是沒有順序的
原地操作:
'''
print('9.popitem')
a={'A':'a','B':'b','C':'c'}
a.popitem()#隨機彈出,但好像每次都是彈出了'c',但是字典中是沒有順序的。
print(a)
#no.10
'''
方法:setdefault
對象:字典
作用:一部分類似於get,能夠獲得與給定鍵相關聯的值;而如果沒有給定的鍵,則設定相應的值
原地操作:是
'''
print('10.setdefault')
a.clear()
a={'A':'a','B':'b'}
print(a.setdefault('A','c'))
print(a.setdefault('C','c'))
#no.11
'''
方法:update
對象:字典
作用:利用一個字典項更新另外一個字典,提供的字典項會被添加到舊的字典中,如果有相同的
    則進行覆蓋。
原地操作:是
'''
print('11.update')
a.clear()
a={'A':'a','B':'b'}
b={'A':'aa','C':'c'}
a.update(b)
print(a)
#no.12
'''
方法:values和itervalues
對象:字典
作用:以列表的形式返回字典中的值,後者返回迭代器####結果與書上好像不太一樣
原地操作:否
'''
print('12.values')
a.clear()
a={'A':'a','B':'b'}
print(a.values())
print(list(a.values()))#沒有itervalues,而這裏需要list,注意與key的區別。
#要加list應該是返回的迭代器?







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章