1. 切片
翻轉字符串順序,使用切片str[::-1]
a="HelloWorld!"print(a[::-1])"""!dlroWolleH"""
切片完整的寫法 str[start: end: step]
(資料圖)
start 字符串開始的索引值
end 字符串結束的索引值
step 間隔步長,默認為1。
一般切片時,只使用start和end, 不設置step。如果step為-1,即翻轉順序倒著切片。
2. not運算符a=[]print(nota)"""True"""
not是Python的內置關鍵詞,一種 邏輯非的運算符。在上面的代碼中, 空列表[]是一種類似False的效果, 而 not []即為真。類似的還有空字符串、空集合等空數據。
3. F-stringsfirst_name="John"age=19print(f"Hi,I"m{first_name}andI"m{age}yearsold!")"""Hi,I"mJohnandI"m19yearsold!"""
自3.6以來,Python新增了字符串的格式化方法,在字符串內可以調用環境中的變量。
實現上面代碼的功能,還可以用字符串的format方法
first_name="John"age=19print("Hi,I"m{}andI"m{}yearsold!".format(first_name,age))"""Hi,I"mJohnandI"m19yearsold!"""
3.8以后,Python的f-string新增了如下效果
x=10y=20print(f"{x=},{y=}")"""x=10,y=20"""4. print函數4.1 end參數
a=["english","french","spanish","german","twi"]forlanguageina:print(language,end="")"""englishfrenchspanishgermantwi"""
print函數end用于設定打印內容結尾的符號,默認換行符\n,所以在for循環使用print時候會看到內容是逐行顯示的。
72. sep參數print函數默認sep=" ",通過改變sep,打印的結果也會發生變化。
day="04"month="10"year="2022"print(day,month,year)print(day,month,year,sep="")print(day,month,year,sep="")print(day,month,year,sep=".")"""041020220410202204/10/202204.10.2022"""5. 合并字典
a={"a":1,"b":2}b={"c":3,"d":4}a_and_b=a|bprint(a_and_b)"""{"a":1,"b":2,"c":3,"d":4}"""
3.9之后, python支持字典的 或|來合并多個字典。
6. 條件語句condition=Trueifcondition:name="John"else:name="Doe"print(name)"""John"""
如果條件語句需要寫在一行內,可以改寫成
condition=Truename="John"ifconditionelse"Doe"print(name)"""John"""7. 下劃線_
下劃線有以下三個常見的用處
調用最近(上一次)的運行結果
忽略不需要操作的值
定義變量名,避免與內置關鍵詞沖突
下劃線間隔的數字
7.1 調用結果>>>print(_)Traceback(mostrecentcalllast):File"",line1,in >>>1+23>>>print(_)3
_可以調用最近上一次 操作1+1的運行 結果3。
7.2 忽略不需要的值除此之外, 下劃線 _還可用在for循環中,忽略不需要的值。
for_inrange(100):print("Theindexdoesn"tmatter")"""Theindexdoesn"tmatterTheindexdoesn"tmatter..."""7.3 定義變量名,避免與內置關鍵詞沖突
#避免與關鍵詞list、global沖突list_=[0,1,2,3,4]global_="Hithere"7.4 下劃線數字
為了增加數字的可閱讀性,可以在數字中加入下劃線_
number=1_500_000print(type(number))print(number)"""15000008. setdefault"""
使用字典做詞頻統計時,常見實現算法
檢查該關鍵詞是否存在于字典中
如果存在, 該關鍵詞詞頻加1
如果不存在,該關鍵詞詞頻設為1
importpprinttext="""It"sthefirstofApril.It"sstillcoldintheUK.ButI"mgoingtothemuseumsoitshouldbeawonderfulday"""counts={}forwordintext.split():ifwordincounts:counts[word]+=1else:counts[word]=1pprint.pprint(counts)"""{"April.":1,"But":1,"I"m":1,"It"s":2,"UK.":1,"a":1,"be":1,"cold":1,"day":1,"first":1,"going":1,"in":1,"it":1,"museum":1,"of":1,"should":1,"so":1,"still":1,"the":3,"to":1,"wonderful":1}"“”
實際上,使用字典的setdefault方法,可以起到ifelse判斷的作用。
counts={}forwordintext.split():counts.setdefault(word,0)counts[word]+=19. lambda函數
lambda函數更簡潔,可以在一行代碼內定義一個簡潔的函數。
defsquare(num:int)->int:returnnum**2print(f"Functioncall:{square(4)}")"""Functioncall:16"""square_lambda=lambdax:x**2print(f"Lambdafunction:{square_lambda(4)}")"""Lambdafunctional:16"""10. Try-Except
寫代碼的時候,經常會遇到報錯,例如分母為0
defget_ration(x:int,y:int)->int:ratio=x/yratio=x/yreturnratioprint(get_ratio(x=400,y=0))"""---------------------------------------------------------------------------NameErrorTraceback(mostrecentcalllast)in 4returnratio5---->6print(get_ratio(x=400,y=0))NameError:name"get_ratio"isnotdefined"""
可以使用try except包裹住 "小錯誤",并對可能出錯的地方進行微調,來忽略錯誤。
defget_ration(x:int,y:int)->int:try:ratio=x/yexcept:ZeroDivisionError:y=y+1ratio=x/yreturnratioprint(get_ratio(x=400,y=0))"""400.0"""11. Args&Kwargs
defsome_function(*args,**kwargs):print(f"Args:{args}")print(f"Kwargs:{kwargs}")some_function(1,2,3,a=4,b=5,c=6)"""Args:(1,2,3)Kwargs:{"a":4,"b":5,"c":6}"""
使用*arg可以讓函數傳入任意多個參數,而**kwarg可以讓函數傳入任意多個鍵值對。
12. 列表推導式even_numbers=[]forxinrange(10):#%取余數ifx%2==0andx!=0:even_numbers.append(x)print(even_numbers)"""[2,4,6,8]"""
實現同樣功能,列表推導式只需要一行
even_numbers=[xforxinrange(10)ifx%2==0andx!=0]print(even_numbers)"""[2,4,6,8]"""
精選文章
管理世界 | 使用文本分析詞構建并測量短視主義
管理世界 | 使用 「經營討論與分析」 測量「企業數字化指標」
支持開票 | Python實證指標構建與文本分析
PNAS | 文本網絡分析&文化橋梁Python代碼實現
PNAS | 使用語義距離測量一個人的「創新力(發散思維)得分」
MS | 使用網絡算法識別『創新的顛覆性與否』
金融研究 | 文本相似度計算與可視化
金融研究 | 使用Python構建「關鍵審計事項信息含量」
視頻分享 | 文本分析在經管研究中的應用
轉載 | 金融學文本大數據挖掘方法與研究進展
文本分析 |「MD&A信息含量」指標構建代碼實現
可視化 | 繪制《三體》人物關系網絡圖
長期征稿 | 歡迎各位前來投稿
17G數據集| 深交所企業社會責任報告
70G數據集| 上市公司定期報告數據集
27G數據集 | 使用Python對27G招股說明書進行文本分析
數據集 | 585w企業工商注冊信息
數據集 | 90w條中國上市「公司高管數據」
可視化 | 繪制《三體》人物關系網絡圖
認知的測量 | 向量距離vs語義投影
Asent庫 | 英文文本數據情感分析
tomotopy | 速度最快的LDA主題模型
100min視頻 | Python文本分析與會計
安裝python包出現報錯:Microsoft Visual 14.0 or greater is required. 怎么辦?
如何正確讀入文本數據不亂碼(解決文本亂碼問題)
Faker庫 | 生成實驗數據
使用R語言繪制文本數據情感歷時趨勢圖
NiceGUI庫 | 簡單易懂的Web GUI開發包;可開發數據標注工具、心理學實驗工具等
CheatSheet | Python文本數據處理速查表
pandas | 使用 df.query 字符串表達式進行數據篩選
免責聲明:本文不構成任何商業建議,投資有風險,選擇需謹慎!本站發布的圖文一切為分享交流,傳播正能量,此文不保證數據的準確性,內容僅供參考