python dict字典



      當我基本能從事Django框架來對網站進行開發的時候,發現對Python的知識了解得太少了,甚至到了知識匱乏的階段。看來,我得溫習一下Python知識了。

   據我個人的理解,Python中有三種內置的數據類型。dictionary(字典)、List(列表)和tuple(元組)。下面我將對這幾個內置的數據類型進行總結。

   Dictionary(字典)

   首先,什么是字典呢?

通俗地來講,字典無非就是很多的數據,但是它有一個目錄,可以通過目錄中的一個簡單值來找到與之相對於的詳細信息。換句話來說,目錄就是內容的一個特殊標示,即目錄中的每一個字段,都會在內容中有與之相對應的詳細信息。也就是說,目錄中的每一個信息都是唯一的,與目錄中的其他信息互不沖突。

在Python的Dictionary不只是用於存儲字符串。Dictionary的值可以是任意數據類型,包括字符串,整數,對象,甚至其它的 dictionary。在單個 dictionary里, dictionary的值並不需要全都是同一數據類型,可以根據需要混用和匹配。但是Python的key就比較嚴格了,它們可以是字符串,整數(我知道的只有這兩種)。也可以在一個 dictionary中混用和配匹 key的數據類型。

   定義Dictionary

dic = {"server":"apache", "database":"master"}每一個元素都是一個 key-value對, 整個元素集合用大括號括起來。可以通過 key來引用其值,但是不能通過值獲取 key。所以d["server"]的值為 'apache'。

修改Dictionary

在一個 dictionary中不能有重復的key,但我們可以給一個存在的 key賦值,覆蓋原有的值。如,我要將Dictionary dic中“server”的值改為“weblogic”,dic[“server”] =“weblogic”。

添加key-value

添加鍵值對其實很簡單,舉個簡單的例子:我要在Dictionary中添加user=’root’的鍵值對,dic[“user”] = “root”。

Dictionary中的常用方法:

len(a)

得到字典a中元素的個數

a[k]

取得字典a中鍵K所對應的值

a[k] = v

設定字典a中鍵k所對應的值成為v

del a[k]

使用 key從一個 dictionary中刪除獨立的元素。如,刪除Dictionary dic中的user=’root’:del dic[“user”]

a.clear()

從一個 dictionary中清除所有元素。如,刪除Dictionary dic中的所有元素:dic.clear()

a.copy()

得到字典副本

k in a

字典中存在鍵k則為返回True,沒有則返回False

k not in a

 字典中不存在鍵k則為返回true,反之返回False

a.has_key(k)

判斷字典a中是否含有鍵k

a.items()

得到字典a中的鍵—值對list

a.keys()

得到字典a中鍵的list

a.update([b])

從b字典中更新a字典,如果鍵相同則更新,a中不存在則追加.

a.fromkeys(seq[, value])

創建一個新的字典,其中的鍵來自sql,值來自value

a.values()

得到字典a中值的list

a.get(k[, x])

從字典a中取出鍵為k的值,如果沒有,則返回x

a.setdefault(k[, x])

將鍵為k的值設為默認值x。如果字典a中存在k,則返回k的值,如果不存在,向字典中添加k-x鍵值對,並返回值x

a.pop(k[, x])

取出字典a中鍵k的值,並將其從字典a中刪除,如果字典a中沒有鍵k,則返回值x

a.popitem()

取出字典a中鍵值對,並將其從字典a中刪除

a.iteritems()

返回字典a所有鍵-值對的迭代器。

a.iterkeys()

返回字典a所有鍵的迭代器。

a.itervalues()

返回字典a所有值的迭代器。

 

注意:

Dictionary中的key值是大小寫敏感的。並且在同一個dictionary中不能有重復的key值。並且,Dictionary中沒有元素順序的概念。

 

python內置數據類型
1. Dictionary是一個內置數據類型,定義了鍵和值之間一對一的關系,類似java里的hashtable的實例,他是無序的,key是大小寫敏感的
與java不同的是,key只能是字符串,整數或者基本類型,value是可以是不同數據類型的值,
del可以用key刪除元素,用clear清空
keys返回key的list,values返回值的list,items()返回一個dictionary的tuple
2. List:更像java里的數組,ArrayList
可以采用負數索引,從list的尾部開始向前計數
直接用a[1:n]實現list的分片 
直接append在隊尾添加元素,在insert(pos, obj)在pos出加元素,extend連接list
直接用index找元素在list中的位置,沒找到時會引發異常,可以用in判斷是否在
直接用remove刪除元素,可以直接用pop得到並刪除以后一個元素
list可以用*運算符,當做重復器。[1,2]*3 = [1,2,1,2,1,2]
簡單方法將list中的每個元素應用一個函數,映射為另一個list
li=[1,2,3,4]
[elem*2 for elem in li]
[2,4,6,8]
3. Tuple: 不可變的list,tuple可以用作dictionary的key
tuple可以用於一次賦值多個值
4. 變量沒有定義,首次賦值產生,當超出作用域就自動消亡
變量賦值可以分行,用\作為續行符
不能使用一個沒有賦值的變量
5. range可以用來返回一個整數的list
6. python可以支持格式化字符串,將一個值插於在%s的位置
“string template contains %s" %(params);
%d表示整數, %f表示浮點數(6位小數), %.2f表示兩位小數,%+。2f表示打印正負
7. ";".join(list)用";"將list里的元素連接 
     string.split(";")對應是將字符串分割


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM