資料結構
python
中兩大主力資料結構是列表和字典。列表按順序儲存資料,而字典像小型資料庫,使用鍵高效的儲存和檢索資料。
type
函式可以檢查值或變數的資料型別。
序列是一組按順序排列的值,python
中有3種內建的序列型別:字串、元組和列表。第乙個正索引為0
,指向左端。第乙個負索引為-1
,指向右端。也可使用切片表示法複製子序列,例如s[begin:end]
從索引begin
複製到end-1
的元素。可使用+
和*進行拼接,要進行拼接序列的型別必須相同,不能元組和列表進行拼接。可使用len
函式進行計算長度。表示式xin s
檢查序列s
是否包含元素x
,如果包含返回true
否則返回false。元組
元組是一種不可變序列,包含零個或更多個值。元組用圓括號括起,其中元素用逗號分隔。如果要修改元組,就必須建立乙個體現更改的新元組。如果需要頻繁修改就將元組換成列表。單元素元組後面必須有逗號分隔。
x in tup#如果x是tup的元素返回true
len(tup)#元組tup包含的元素數
tup.count(x)#元素x在元組tup中出現的次數
tup.index(x)#元組tup中第乙個元素x的索引
列表列表是可變的,可在不複製的情況下,新增、刪除或修改列表元素。列表用方括號括起其中元素用逗號分隔,列表可包含任何型別的值,空列表用
表示。在處理列表的程式查詢錯誤時,通常必須明白列表元素指向其值,而不是包含它們。當列表中有元素指向自身時,python
能夠識別出自引用。函式reverse
不會製作列表的拷貝,而是直接刪除列表的元素,因此我們說反轉是就地完成的。
s.count()#返回元素x在列表s中出現的次數
s.extend(lst)#將lst中所有元素都新增到s中
s.index(x)#返回第一次x的索引
s.insert(i,x)#將元素x插入到索引i指定的元素前面,結果s[i]== x
s.pop(i)#刪除並返回s中索引為i的元素
s.remove(x)#刪除s中的第乙個x元素
s.reverse()#反轉s中元素的排列順序
s.sort()#將s中的元素按公升序排列
列表解析,
也可使用列表解析進行篩選
n*n for n in range(1,11)
2*n+7 for n in range(1,11)
n**3 for n in range(1,11)
n for n in nums if n>0
c for c in s if c.lower()
c for c in s if c.lower() not in 『aeiou』
字典在儲存鍵值對方面,python
字典是乙個效率極高的資料結構。字典也稱為關聯陣列、雜湊表。字典利用了乙個巧妙的程式設計訣竅-
雜湊。從本質上說,字典的每個鍵值都被轉換為乙個數字-
雜湊值。訪問值時將提供的鍵值轉換為雜湊值,再跳到列表相應的位置上。
字典中的鍵必須是獨一無二的,而且鍵是不可變的。如果你預先不知道某個值是否包含在字典中,可使用keyin d
進行檢查。如果key
包含在字典d
中則返回true
。
d.items()#返回乙個由字典d的鍵值對組成的檢視
d.keys()#返回乙個由字典d的鍵組成的檢視
d.values()#返回乙個由字典d的值組成的檢視
d.get(key)#返回與key相關聯的值
d.pop(key)#刪除鍵key並返回與之想關聯的值
d.popitem()#返回字典d中的某個鍵值對
d.clear()#刪除字典d的所有元素
d.copy()#複製字典d
d.fromkeys(s,t)#建立乙個新字典,其中的鍵來自s,值來自t
d.setdefault(key,v)#如果key包含在字典d中則返回其值,否則返回v並將(key,v)新增到字典d中。
d.update(e)#將e中的鍵值對新增到字典d中,e可能是字典,也可以是鍵值對序列。
集合集合是一系列不重複的元素。集合類似於字典,但只包含鍵,而沒有相關聯的值。集合分兩類:可變集合和不可變集合。集合最常用的的功能就是刪除序列中的重複元素。
輸入和輸出
python
提供了強大的基本檔案i/o
支援。
設定字串格式
x= 1/81
print(x) #0.0123456790123
print(『value:%.2f』%x)#0.01
print(『value:%.5f』%x)#0.01235
d整數
o八進位制
x小寫十六進製制
x大寫十六進製制
e小寫科學計數法浮點數
e大寫科學計數法浮點數
f浮點數
s字串
%%字元
也可以使用format函式進行字串的格式整理。
『my has 』.format(『dog』,』fleas』)
輸出:』mydog has fleas』
『1/81= 』.format(x = 1/81)
輸出:』1/81= 0.0123456790123』
『num= f}』.format(x = 1/81,d = 3)
輸出:』num= 0.012』
『num= f}』.format(x = 1/81,d = 4)
輸出:』num= 0.0123』
可以通過其設定精度,如果這都滿足不了你,那麼還有最後一招了,模組啊,可以使用
cheetah
模組或者
django
模組。
讀寫檔案
檔案是乙個命名的位元集合,儲存在硬碟、u
os.getcwd()#返回當前工作目錄的名稱
os.listdir(p)#返回乙個字串列表,其中包含路徑p指定的資料夾中所有檔名稱
os.chdir(p)#將當前工作目錄設定為路徑p
os.path.isfile(p)#當路徑p指定的是乙個檔案的名稱,返回true
os.path.isdir(p)#當路徑p指定的是乙個資料夾的名稱,返回true
os.stat(fname)#返回有關fname的資訊,如大小和最後一次
如果只是想獲悉當前工作目錄下的.py
檔案,可使用下方的函式。
def list_py(path = none):
if path == none:path= os.getcwd()return[fname for fname in os.listdir(path)
if os.path.isfile(fname)
if fname.endswith(『.py』)]
返回當前工作目錄中所有檔案的大小總和。
def size_in_bytes(fname):
return os.stat(fname).st_size
def cwd_size_in_bytes():
total= 0
for name in files_cwd():
total= total + size_in_bytes(name)
return total
處理文字檔案
逐行讀取文字檔案
#r讀取w寫入a在檔案末尾輸入b二進位制模式t文字模式+為讀寫開啟檔案
def print_file1(fname):
f= open(fname,』r』)
for line in f:
print(line,end= 『』)
f.close()
f.read()#讀取檔案
f.write(『helloworld! \n』)#寫入檔案
f.seek(0)#讓檔案指標指向檔案開頭
pickle
pickle.dump
將資料結構儲存到磁碟中,之後可以使用pickle.load
從磁碟獲取資料結構。
讀取網頁
通過urllib
模組
python核心程式設計讀書筆記 第2章 入門
print 重定向輸出 算數操作符 比較操作符 邏輯操作符 布林值 1 true true 2 true false 附 連續表示式 python中的連續表示式相當於and操作。如 3 4 5 true 3 4 and 4 5 true 3 4 1 python中為false,js中為true,因為...
Linux程式設計讀書筆記 入門
第一章 入門 1 什麼是unix unix是open group管理的乙個商標,它指的是遵循特定規範的計算機作業系統 2 什麼是linux linux是乙個可以自由發布的類unix核心實現,他是乙個作業系統的底層核心 5 庫檔案 1 靜態庫 a 2 共享庫 so 靜態庫的缺點 同時執行許多應用程式並...
Python核心程式設計讀書筆記
本次筆記針對原書第6章節列表 列表型別 內建函式 list.extend seq 把序列seq的內容新增到 列表中 list.index obj,i 0,j len list list.insert index,obj 刪除操作 list.pop index 1 根據位置刪除 list,remove...