一唯笙、對象
所有的 Python 對象都擁有三個特性:身份仙蛉,類型和值。
身份
對象的唯一標識膝迎,對象的身份可以使用內建函數(shù) id()來得到盆色。這個值可以被認為是該對象的內存地址灰蛙。
類型
決定了該對象可以保存什么類型的值。對象的類型可以使用內建函數(shù) type()來查看隔躲。
值
對象表示的數(shù)據項摩梧。
對象的身份和類型都是只讀的。
對象的值是否可以更改被稱為對象的可改變性宣旱。(mutability)
每個對象天生具有布爾 True 或 False 值仅父。空對象浑吟、 值為零的任何數(shù)字或者 Null 對象 None 的布爾值都是 False笙纤。
Python的位操作
Python 整數(shù)支持標準位運算:取反(~),按位 與(&), 或(|) 及 異或(^) 及左移(<<)和右
移(>>)组力。
二省容、序列數(shù)據類型
序列類型函數(shù):
len()
max() and min()
sorted() and reversed()
enumerate() and zip()
sum()
list() and tuple() 淺拷貝
(list() and tuple() 常用于在兩種類型之間進行轉換,比如你需要把一個已有的元組轉成列表類型的(然后你就可以修改它的元素了),或者相反燎字。)
列表的相關函數(shù):
List Method Operation
*list 解析一個列表(返回其中的各個元素)
list[::-1] 返回反轉后的列表
zip(list1,list2) 打包多個列表中同一位置的元素腥椒,返回一個元組
map(func,list) 把func作用到list的每個元素上
list.append(obj) 向列表中添加一個對象 obj
list.count(obj) 返回一個對象 obj 在列表中出現(xiàn)的次數(shù)
list.extend(seq) 把序列 seq 的內容添加到列表中
list.index(obj) 返回obj的索引
j=len(list)) 返回 list[k] == obj 的 k 值,并且 k 的范圍在 i<=k<j;否則
引發(fā) ValueError 異常.
list.insert(index, obj) 在索引量為 index 的位置插入對象 obj.
list.pop(index=-1) 刪除并返回指定位置的對象,默認是最后一個對象
list.remove(obj) 從列表中刪除對象 obj
list.reverse() 原地翻轉列表
list.sort(func=None,key=None,reverse=False) 以指定的方式排序列表中的成員,如果 func 和 key 參數(shù)指定,則按照指定的方式比較各個元素,如果 reverse 標志被置為
True,則列表以反序排列.
在使用可變對象的方法如 sort(),extend()和 reverse()的時候要注意,這些操作會在列表中原地執(zhí)行操作,也就是說現(xiàn)有的列表內容會被改變,但是沒有返回值!
matrix[:] = map(lambda x:list(x)[::-1],zip(*matrix))
字典的相關函數(shù)
方法名字 操作
dict.clear() 刪除字典中所有元素
dict.copy() 返回字典(淺復制)的一個副本
dict.fromkeys(seq,val=None) 創(chuàng)建并返回一個新字典阿宅,以 seq 中的元素做該字典的鍵,val 做該字典中所有鍵對應的初始值(如果不提供此值笼蛛,則默認為 None)
dict.iter() 方法 iteritems(), iterkeys(), itervalues()與它們對應的非迭代方法
一樣洒放,不同的是它們返回一個迭代子,而不是一個列表滨砍。
dict.pop(key往湿,[, default]) 和方法 get()相似,如果字典中 key 鍵存在惋戏,刪除并返回 dict[key]领追,如果 key 鍵不存在,且沒有給出 default 的值日川,引發(fā) KeyError 異常蔓腐。
dict.setdefault(key,default=None) 和方法 set()相似,如果字典中不存在 key 鍵龄句,由 dict[key]=default 為它賦值。
dict.update(dict2) 將字典 dict2 的鍵-值對添加到字典 dict
dict.get(key,default=None) 對字典 dict 中的鍵 key,返回它對應的值 value散罕,如果字典中不存在此鍵分歇,則返回 default 的值(注意,參數(shù) default 的默認值為 None)
dict.items() 返回一個包含字典中(鍵, 值)對元組的列表
dict.keys() 返回一個包含字典中鍵的列表
dict.values() 返回一個包含字典中所有值的列表
sorted(dict) 返回一個有序的迭代子
集合的相關函數(shù)
函數(shù)/方法名 等價運算符 說明
所有集合類型
len(s) 集合基數(shù): 集合 s 中元素的個數(shù)
set([obj]) 可變集合工廠函數(shù); obj 必須是支持迭代的欧漱,由 obj 中的元素創(chuàng)建集合职抡,否則創(chuàng)建一個空集合
frozenset([obj]) 不可變集合工廠函數(shù); 執(zhí)行方式和 set()方法相同,但它返回的是不可變集合
obj in s 成員測試:obj 是 s 中的一個元素嗎?
obj not in s 非成員測試:obj 不是 s 中的一個元素嗎?
s == t 等價測試: 測試 s 和 t 是否具有相同的元素?
s != t 不等價測試: 與==相反
s < t (嚴格意義上)子集測試; s != t 而且 s 中 所 有的元素都是 t 的成員
s.issubset(t) s <= t 子集測試(允許不嚴格意義上的子集): s 中所有的元素都是 t 的成員
s > t (嚴格意義上)超集測試: s != t 而且 t 中所有的元素都是 s 的成員
s.issuperset(t) s >= t 超集測試(允許不嚴格意義上的超集): t 中所有的元素都是 s 的成員
s.union(t) s | t 合并操作: s 或 t 中的元素
s.intersection(t) s & t 交集操作: s 和 t 中的元素
s.difference(t) s - t 差分操作: s 中的元素误甚,而不是 t 中的元素
s.symmetric_difference(t) s ^ t 對稱差分操作:s 或 t 中的元素缚甩,但不是 s 和 t 共有的元素
s.copy() 復制操作:返回 s 的(淺復制)副本
s.update(t) s |= t (Union) 修改操作: 將 t 中的成員添加 s
s.intersection_update(t) s &= t 交集修改操作: s 中僅包括 s 和 t 中共有的成員
s.difference_update(t) s -= t 差修改操作: s 中包括僅屬于 s 但不屬于 t 的成員
s.symmetric_difference_update(t) s ^= t 對稱差分修改操作: s 中包括僅屬于 s 或僅屬于 t 的成員
s.add(obj) 加操作: 將 obj 添加到 s
s.remove(obj) 刪除操作: 將 obj 從 s 中刪除;如果 s 中不存在obj,將引發(fā)KeyError
s.discard(obj) 丟棄操作: remove() 的友好版 本 - 如果 s 中存在 obj,從 s 中刪除它
s.pop() Pop 操作: 移除并返回 s 中的任意一個元素
s.clear() 清除操作: 移除 s 中的所有元素