當我基本能從事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(";")對應是將字符串分割
