您的位置:首頁 >社會 > 正文

    12個優雅的python代碼使用案例-環球報資訊

    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-strings

    first_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)"""1500000"""

    8. 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]+=1

    9. 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)in4returnratio5---->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 字符串表達式進行數據篩選

    免責聲明:本文不構成任何商業建議,投資有風險,選擇需謹慎!本站發布的圖文一切為分享交流,傳播正能量,此文不保證數據的準確性,內容僅供參考

    關鍵詞: 文本分析 金融研究 信息含量

    熱門資訊