標籤:pop readline 筆記 處理 key 入行 輸出 enum 子集
直接從六張開始看看書裡有什麼。
cmp() len() max() and min() sorted() and reversed() enumerate() and zip() sum() list() and tuple() dir()方法來得到它所有的方法和屬性
extend() and append() extend()接受一個列表的內容,然後把所有元素追加到另一個列表中 append()把整個元素追加列表中,如:[].extend(‘abc‘) 最後輸出的結果就是 [‘a‘, ‘b‘, ‘c‘] [].append(‘abc‘)輸出結果是[‘abc‘]
pop() 把數組中的元素去掉,接受的參數是一個integer,把傳入的index去掉,如果不傳預設是最後一個
range(start, end, step =1)
list.append(obj)
list.count(obj)
list.extend(seq) a
list.index(obj, i=0,
j=len(list))
list.insert(index, obj)
list.pop(index=-1)
list.remove(obj)
list.reverse()
list.sort(func=None,key=None,reverse=False)
字典
d = {‘name‘:‘allen‘,‘name2‘:‘allen‘,‘age‘:‘40‘}
d = dict(([‘x‘, 1],[‘y‘, 2], [‘z‘,3])) # 注意:兩個() dict只接受一個參數,可以是元祖,可以是列表,每個組合的資料個數兩個
d = dict([[‘x‘, 1],[‘y‘, 2], [‘z‘,3]])
d = {}.fromkeys((‘x‘, ‘y‘), 1)
d = dict(zip((‘x‘, ‘y‘), (1, 2)))
d = dict([(‘xy‘[i-1], i) for i in range(1,3)]) #{‘y‘:2, ‘x‘:1}
d= dict(x=1, y=2)
cmp():字典的比較,先比較兩個字典的元素個數,通過keys()方法擷取返回鍵的順序,在比較第一組的鍵,在比較第一組的值,在比較第二組的鍵。。。。。。。。
dict.clear ()
dict.copy ()
dict.fromkeys (seq,
val=None) c
dict.get(key,default=None)
dict.has_key(key)
dict.items()
dict.keys()
dict.iter() 對字典 dict 中的鍵 key,返回它對應的值 value,如果字典中不存在此鍵,則返回 default 的值(注意,參數 default 的預設值為 None)
dict.pop (key[, default])
dict.setdefault(key,default=None)
dict.update(dict2) 將字典 dict2 的鍵-值對添加到字典 dict
dict.values()
set() frozenset()
集合等價/不等價
obj in s
obj not in s
s == t
s != t
s < t (嚴格意義上)子集測試; s != t 而且s中所有的元素都是 t 的成員
s.issubset(t) s <= t
s > t
s.issubset(t) s <= t
s > t
s.issuperset(t) s >= t
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.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)
s.remove(obj)
s.discard(obj)
s.pop()
s.clear()
條件和迴圈
if condition:
pass
elif condition:
pass
else:
pass
while expression:
pass
for iter_var in iterable:
pass
pass什麼也不做
檔案和輸入輸出
open() file()
file_object = open(file_name, access_mode=‘r‘, buffering=-1)
access_mode是一個字串代表一個檔案開啟的模式,r讀 w寫 a追加 U通用分行符號。r 和U 開啟的檔案必須是存在的,w開啟的檔案首先會清空,a開啟的檔案是為了追加做準備的,所有寫入的檔案追加到末尾。+ 代表可讀可寫,b 代表二進位模式訪問
buffering用於指示訪問檔案採用的緩衝方式,0 表示不緩衝,1 表示只緩衝一行資料。
r 以讀方式開啟
rU 或 Ua 以讀方式開啟, 同時提供通用分行符號支援 (PEP 278)
w 以寫方式開啟 (必要時清空)
a 以追加模式開啟 (從 EOF 開始, 必要時建立新檔案)
r+ 以讀寫入模式開啟
w+ 以讀寫入模式開啟 (參見 w )
a+ 以讀寫入模式開啟 (參見 a )
rb 以二進位讀模式開啟
wb 以二進位寫入模式開啟 (參見 w )
ab 以二進位追加模式開啟 (參見 a )
rb+ 以二進位讀寫入模式開啟 (參見 r+ )
wb+ 以二進位讀寫入模式開啟 (參見 w+ )
ab+ 以二進位讀寫入模式開啟 (參見 a+ )
例子:fp = open(r‘c:\io.sys‘, ‘rb‘) # 以二進位讀模式開啟 這裡需要說一下的是file_name參數中的r 的意思是名字就是字串的所顯示的名,也就是遇見 ’\‘ 不轉義
open()
open() 和 file() 函數具有相同的功能, 可以任意替換.您所看到任何使用 open() 的地方, 都可以使用 file() 替換它.一般說來, 我們建議使用 open() 來讀寫檔案, 在您想說明您在處理檔案對象時使用 file() , 例如 ifinstance(f, file)
9.2.2 通用分行符號支援(UNS)
不同平台用來表示行結束的符號是不同的, 例如 \n, \r, 或者 \r\n這就是 UNS 的關鍵所在, 作為 PEP 278 的結果, Python 2.3 引入了 UNS. 當你使用 ‘U‘ 標誌開啟檔案的時候, 所有的行分割符(或行結束符, 無論它原來是什麼)通過 Python 的輸入方法(例如 read*() )返回時都會被替換為分行符號 NEWLINE(\n). (‘rU‘ 模式也支援 ‘rb‘ 選項) . 這個特性還支援包含不同類型行結束符的檔案. 檔案對象的 newlines 屬性會記錄它曾“看到的”檔案的行結束符.
如果檔案剛被開啟, 程式還沒有遇到行結束符, 那麼檔案的 newlines 為 None .在第一行被讀取後, 它被設定為第一行的結束符. 如果遇到其它類型的行結束符, 檔案的 newlines 會成為一個包含每種格式的元組. 注意 UNS 只用於讀取文字檔. 沒有對應的處理檔案輸出的方法.在編譯 Python 的時候,UNS 預設是開啟的. 如果你不需要這個特性, 在運行 configure 指令碼時,你可以使用 --without-universal-newlines 開關關閉它. 如果你非要自己處理行結束符, 請查閱核心筆記,使用 os 模組的相關屬性.
當使用輸入方法如 read() 或者 readlines() 從檔案中讀取行時, Python 並不會刪除行結束符. 這個操作被留給了程式員. 例如這樣的代碼在 Python 程式中很常見:
f = open(‘myFile‘, ‘r‘)
data = [line.strip() for line in f.readlines()]
f.close()
類似地, 輸出方法 write() 或 ritelines() 也不會自動加入行結束符. 你應該在向檔案寫入資料前自己完成。
檔案內移動:seek()
seek() 方法(類似 C 中的 fseek() 函數)可以在檔案中移動檔案指標到不同的位置. offset位元組代表相對於某個位置位移量. 位置的預設值為 0 , 代表從檔案開頭算起(即絕對位移量), 1 代表從當前位置算起, 2 代表從檔案末尾算起. 如果你是一個 C 程式員,並且使用過了 fseek() , 那麼,0, 1, 2 分別對應著常量 SEEK_SET, SEEK_CUR, 以及 SEEK_END. 當人們開啟檔案進行讀寫操作的時候就會接觸到 seek()方法。
text() 方法是對 seek() 的補充; 它告訴你當前檔案指標在檔案中的位置 - 從檔案起始算起,單位為位元組.
Python核心編程-細節