ETH官方钱包

前往
大廳
主題

AI跨領域數據科學 課程紀錄 d12 Python程式設計 (4) 函數與類別設計

傳說中的巴哈魔法師~ | 2022-03-21 11:53:38 | 巴幣 0 | 人氣 154

-
re模組

import re 不需冒號
re.sub("條件","填充物",L) 符合條件就替換成填充物 可以處理多條件
re.split("條件",L) 以條件分割 可以處理多條件

-
容器

List[] 可變更、可重複、有序

Tuple() 不可變更、可重複、有序

Set{} 可變更、不可重複、無序
   S.add(新生成元素)
   S&T 交集
   S|T 聯集
   S-T 差集

Dict{} 可變更、不可重複、有序或無序

可以用來強制轉型
所以說有沒有 不可變更、不可重複、無序 的東西= =

-
二維串列
L=[ [ j for j in 條件] for i in 條件]

-
while 條件 : 需要冒號

break
continue

-
字典

D={key1:value1 , key2:value2 , ...} 可以用for來做

使用{}包資料 所以跟set一樣key值不能重複

D.keys() 傳回所有key
D.values() 傳回所有value
D.items() 傳回所有key,value (若使用for 要使用兩個變數接收值)

D[newkey]=newvalue 新增項目到字典
del D[thatkey] 刪除指定項目
D.pop(thatkey) 刪除指定項目 (有回傳值) ex. x=D.pop('王五')

D.get(thatkey,查不到要顯示的字(預設顯示None)) 傳出對應value
D[thatkey] 如果thatkey不在字典中會出錯

製作字典,計算各單字數量:
S="I am vary happy. I learn Python today. I am a learner. Although today is holiday, I still work."

import re
L=re.sub("\,|\.","",S).split() 清除非英文字元資料 並分割單字

D={i:L.count(i) for i in list(set(L))} 建立字典 單字:數量
L從list轉set格式 來去除重複單字
L從set轉list 因為set無序 list有序 執行for需要有序
D=dict(sorted(D.items(),key=lambda x:x[1],reverse=True)) 排序
key=lambda x:x[1] 以value為排序依據 ( x[0] 以key為排序依據)
reverse=True 降序 (預設升序)
dict(sorted(,,))函數排序 結果為tuple 這邊直接轉dict字典格式

-
子程式

需不需要參數
需不需要回傳

執行完畢釋放所有子程式用到的記憶體 (不需要額外撰寫)

(先掃描全區域的)區域變數裡有沒有 s,有就用區域變數s(要定義清楚),沒有就找全域變數裡有沒有 s,有就用全域變數s,沒有就出錯

global x 若你想要對全域變數進行變更(改變內容),需要先宣告 (使用全域的要額外處理)
但如果是串列 區域串列與全域串列同名時 一律使用全域串列 不需要先宣告 (使用區域的不知道怎麼處理)

所以你在最後一行才宣告也可以

典型的沒定義清楚:

def a():
    s=1
    print(s+1,ass+1)
    ass=ass+1 #這行有問題
a()
s=10
ass=11

-
壓縮

X=zip(Names,Pays) 壓縮Names跟Pays 內容物可改變 X跟著改變
x=X x完全等價於X 改變一者另一者也會改變

print(X,x)
<zip object at 0x0000021C9388B888> <zip object at 0x0000021C9388B888> 以iterators產出

print(list(X),list(x)) 這方法可能會出問題 原因待解決
[('John', 32000), ('Mary', 40000), ('Lucy', 43000), ('John', 32000)] 強制轉串列

Y,Z=zip(*X) 解壓縮(當初是壓縮幾個這邊要對應) Y跟Z出來是tuple X解壓縮完變成

print(X,x)
<zip object at 0x0000021C9388B888> <zip object at 0x0000021C9388B888> 以iterators產出

print(list(X),list(x))
[] [] 內容為空(已解壓縮) 故強制轉串列後為空串列


2022/3/20的 (晚上傳了@@)

創作回應

相關創作

更多創作