本文目錄一覽:
- 1、利用Python進行數據分析筆記:3.1數據結構
- 2、Python數據分析筆記#7.3.1 字元串對象方法
- 3、python自學筆記一 基礎輸出
- 4、Python筆記:命令行參數解析
- 5、python自學筆記13:元組和字典的操作
利用Python進行數據分析筆記:3.1數據結構
元組是一種固定長度、不可變的Python對象序列。創建元組最簡單的辦法是用逗號分隔序列值:
tuple 函數將任意序列或迭代器轉換為元組:
中括弧 [] 可以獲取元組的元素, Python中序列索引從0開始 :
元組一旦創建,各個位置上的對象是無法被修改的,如果元組的一個對象是可變的,例如列表,你可以在它內部進行修改:
可以使用 + 號連接元組來生成更長的元組:
元組乘以整數,則會和列表一樣,生成含有多份拷貝的元組:
將元組型的表達式賦值給變數,Python會對等號右邊的值進行拆包:
拆包的一個常用場景就是遍曆元組或列表組成的序列:
*rest 用於在函數調用時獲取任意長度的位置參數列表:
count 用於計量某個數值在元組中出現的次數:
列表的長度可變,內容可以修改。可以使用 [] 或者 list 類型函數來定義列表:
append 方法將元素添加到列表尾部:
insert 方法可以將元素插入到指定列表位置:
( 插入位置範圍在0到列表長度之間 )
pop 是 insert 的反操作,將特定位置的元素移除並返回:
remove 方法會定位第一個符合要求的值並移除它:
in 關鍵字可以檢查一個值是否在列表中;
not in 表示不在:
+ 號可以連接兩個列表:
extend 方法可以向該列表添加多個元素:
使用 extend 將元素添加到已經存在的列表是更好的方式,比 + 快。
sort 方法可以對列表進行排序:
key 可以傳遞一個用於生成排序值的函數,例如通過字元串的長度進行排序:
bisect.bisect 找到元素應當被插入的位置,返回位置信息
bisect.insort 將元素插入到已排序列表的相應位置保持序列排序
bisect 模塊的函數並不會檢查列表是否已經排序,因此對未排序列表使用bisect不會報錯,但是可能導致不正確結果
切片符號可以對大多數序列類型選取子集,基本形式是 [start:stop]
起始位置start索引包含,結束位置stop索引不包含
切片還可以將序列賦值給變數:
start和stop可以省略,默認傳入起始位置或結束位置,負索引可以從序列尾部進行索引:
步進值 step 可以在第二個冒號後面使用, 意思是每隔多少個數取一個值:
對列表或元組進行翻轉時,一種很聰明的用法時向步進值傳值-1:
dict(字典)可能是Python內建數據結構中最重要的,它更為常用的名字是 哈希表 或者 關聯數組 。
字典是鍵值對集合,其中鍵和值都是Python對象。
{} 是創建字典的一種方式,字典中用逗號將鍵值對分隔:
你可以訪問、插入或設置字典中的元素,:
in 檢查字典是否含有一個鍵:
del 或 pop 方法刪除值, pop 方法會在刪除的同時返回被刪的值,並刪除鍵:
update 方法將兩個字典合併:
update方法改變了字典元素位置,對於字典中已經存在的鍵,如果傳給update方法的數據也含有相同的鍵,則它的值將會被覆蓋。
字典的值可以是任何Python對象,但鍵必須是不可變的對象,比如標量類型(整數、浮點數、字元串)或元組(且元組內對象也必須是不可變對象)。
通過 hash 函數可以檢查一個對象是否可以哈希化(即是否可以用作字典的鍵):
集合是一種無序且元素唯一的容器。
set 函數或者是用字面值集與大括弧,創建集合:
union 方法或 | 二元操作符獲得兩個集合的聯合即兩個集合中不同元素的並集:
intersection 方法或 操作符獲得交集即兩個集合中同時包含的元素:
常用的集合方法列表:
和字典類似,集合的元素必須是不可變的。如果想要包含列表型的元素,必須先轉換為元組:
Python數據分析筆記#7.3.1 字元串對象方法
「目錄」
數據清洗和準備
Data Cleaning and Prepration
——– 字元串對象方法
字元串對象方法
Python能夠成為流行的數據處理語言的部分原因是其易於處理字元串和文本。大部分文本運算都直接做成了字元串對象的內置方法。
split方法可以 通過指定分隔符對字元串進行切片 。
例如,以逗號分割的字元串可以用split拆分成數段:
strip可以 去除字元串頭尾指定的字元 ,默認是空白符或換行符。
strip常常與split一起使用:
利用 加法可以將字元串連接起來 :
但這種方式並不實用,畢竟字元串多了就很麻煩。一種更快 更符合Python風格的方式是是使用join方法 ,我們向join方法中傳入一個列表或元組:
檢測子串的最佳方法是利用Python的in關鍵字,還可以使用index和find。
index和find會 查找指定值的首次出現的位置 。
find和index的區別是:若找不到字元串,index將會引發一個 異常 ,find則會返回 -1 :
count可以 返回指定字串的出現次數
replace用於將 指定模式替換為另一個模式 (replace will substitute occurrences of one pattern for another)
再記錄幾個Python內置的字元串方法吧。
startswith和endswith: 若字元串以某個前綴(後綴)開頭,則返回True :
lower和uppe: 分別將字母字元轉換為小寫或大寫 。
ljust和rjust: 用空格(或其他字元)填充字元串的空白側以返回符合最低寬度的字元串 。
這章終於還剩兩節就結束了。
-END-
python自學筆記一 基礎輸出
print(“我是python小白”)
終端輸出:我是python 。
此種寫法只用於了解print函數的作用,在程序中要輸出某個內容,一般採用變數的形式,即:
my=”小白”
print(“我是python%s。” % my)
終端輸出:我是python小白。
此處my為變數,小白是被賦值給變數my,並不是my等於變數。定義變數的好處是一個程序可以無限次數的使用它。定義變數還可以為:
a=b=c=2 #2同時賦值給a b c三個變數
a,b c=1,2,3 #a=1 b=2 c=3
注意:變數名區分大小寫,不能以數字開頭。
name,age,weight=”小白”,18,65.5
stuid=1
print(“我的名字是%s,我的年齡是%d,我的體重是%f公斤,我和學號是%d” % (name,age,weight,stuid))
終端輸出:我的名字是小白,我的年齡是18歲,我的體重是65.500000公斤,我的學號是1
print(“我的名字是%s,我的年齡是%d歲,我的體重是%.2f公斤,我的學號是%03d” %(name,age,weight,stuid))
終端輸出:我的名字是小白,我的年齡是18歲,我的體重是65.50公斤,我的學號是001
printt(f”我的名字是{name},我明年的年齡是{age 1}歲,我的體重是{weight}公斤,我的學號是00{stuid}”)
#此種寫法為最常用的。
終端輸出:我的名字是小白,我明年的年齡是19歲,我的體重是65.5公斤,我的學號是001
%d 為整數型函數值 %03d表示以3位整數顯示,不足的以0替代,超出的原樣顯示。
%f為小數型函數值%.2f表示只顯示小數點後兩位
%s為字元型函數值 字元串應以雙引或單引號括起。
Python筆記:命令行參數解析
有些時候我們需要通過命令行將參數傳遞給腳本,C語言中有個getopt()方法,python中也有個類似的命令行參數解析方法getopt()。python也提供了比getopt()更簡潔的argparse方法。另外,sys模塊也可以實現簡單的參數解析,本文將對這3種命令行參數解析方法簡要介紹。
sys.argv是傳入的參數列表,sys.argv[0]是當前python腳本的名稱,sys.argv[1]表示第一個參數,以此類推。
命令行運行:
可以看到傳入的參數通過sys.argv來獲取,它就是一個參數列表。
python的getopt與C語言的的getopt()函數類似。相比於sys模塊,支持長參數和短參數,並對參數解析賦值。但它需要結合sys模塊進行參數解析,語法格式如下:
短參數為單個英文字母,如果必須賦值需要在後面加英文冒號( : ),長參數一般為字元串(相比短參數,更能說明參數含義),如果必須賦值需要在後面加等號( = )。
命令行運行:
注意:短參數(options)和長參數(long_options)不需要一一對應,可以任意順序,也可以只有短參數或者只有長參數。
argparse模塊提供了很多可以設置的參數,例如參數的默認值,幫助消息,參數的數據類型等。argparse類主要包括ArgumentParser、add_argument和parse_args三個方法。
下面介紹這三個函數的使用方法。
argparse默認提供了 -h | –help 參數:
命令行運行:
下面列出部分參數:
下面來添加參數:
命令行運行:
parse_args() 方法用於解析參數,在前面的示例代碼中使用parse_args方法來提取參數值,對於無效或者錯誤的參數會列印錯誤信息和幫助信息:
命令行運行:
本文介紹了Python的三種命令行參數解析方法sys.argv、getopt和argparse,可以根據自己的需要進行選擇,getopt和argparse兩種方法相比來說,建議選擇argparse,代碼量更少更簡潔。更詳細的使用方法參考官方文檔:
–THE END–
python自學筆記13:元組和字典的操作
定義元組(tuple):
t1=(1,2,3,4)#多個數據元組
t2=(1,)#如果元組內只有一個數據,也需要手逗號隔開,否則這個數據將是他本身的類型。
元組的操作:
元組類型數據不支持修改,可查找
查找:
按下標查找:
print(t1[1])
函數查找:
print(t1.index(1))返回對應下標,如果數據不存在,程序將報錯
print(t1.count(1))統計數據在元組當中出現的次數
print(len(t1))統計元組當中的數據個數
注意:當元組內嵌套列表數據,可以通過下標的方法對列表數據進行修改如:
t3=(1,2,[“a”,”b”])
t3[2][0]=c #t3的值將變為(1,2,[“c”,”b”])
——————————————————
——————————————————
定義字典(dict)
字典的特點
1:符號為{}
2:數據為鍵(key)值(value)對形式,每個鍵值對之間用逗號隔開如:
dict1={“name”:”小明”,”age”:18,”gender:男”}
字典的操作:
dict1[“name”]=”小紅”
dict1[“id”]=3
如果key存在,將修改其所對應的值。如果不存在,將在字典最後添加該鍵值對
2.刪除數據
del():刪除字典或刪除字典內的鍵值對
del dict1[“name”] 刪除字典內的鍵值對,如果刪除的key不存在,程序將會報錯
del(del)刪除字典
clear(dict1) 清空字典
3.查找數據
一.按照key進行查找,最後返回相對應的值
二.按函數進行查找:
(1) get(key,默認值):
如果查找的key不存在則返回所寫的默認值,如果不寫默認值則返回None
dict1={“name”:”小明”,”age”:18,”gender:男”}
print(dict1.get(“name”)) #小明
print(dict1.get(“id”,110)) # 110
——————————————————
(2) keys():返回字典內的所有key 可用for遍歷
print(dict1.keys())
返回 [“name”,”age”,”gender”]
for key in dict1.keys():
..print(key)
逐行輸出name age gender
——————————————————
(3) values(): 返回字典內的值 可用for遍歷
print(dict1.values())
返回[“小明”,18,”男”]
for value dict1.values():
..print(value)
逐行輸出小明 18 男
——————————————————
(4) items():將字典內的數據以元組的形式返回
print(dict1.items()) 可用for遍歷
返回[(“name”,”小明”),(“age”,18),(“gender”,”男”)]
for item in dict1.items():
..print(item)
逐行輸出 (“name”,”小明”) (“age”,18)(“gender”,”男”)
——————————————————
遍歷字典鍵值對(拆包) 可在for內使用兩個臨時變數
dict1={“name”:”小明”,”age”:18,”gender:男”}
for key,value in dict1.items():
..print(f”{key}=value”)
逐行輸出:
name=小明 age=18 gender=男
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291911.html