在python下用pynlpir進行中文分詞後顯示的不是中文?

時間 2021-06-02 23:33:24

1樓:

可能答的也不十分準確,湊合看吧。

題主要了解一下str與repr兩個函式的差別,或者說,每個物件的__str__()與__repr__()函式的差別

str(x)是將x轉成字串,對於已經是字串的x來說,就是原值,對於unicode字串來說,會轉變成utf8編碼,print 方法是呼叫了輸出物件的__str__()函式,所以,對於unicode的中文字串來說,print輸出的是utf8字串,所以你可以看到漢字。

而repr(x)是將x轉成適合計算機輸入的字串,即x = eval(repr(x)),對於字串型別來說,返回結果首尾增加引號,其中的特殊字元要進行轉換,對於其他編碼字串來說,所有字元都變成可轉義的寫法。在python shell下直接輸入乙個表示式,螢幕上返回的就是這個表示式生成物件的repr方法,很容易通過加不加print來了解str和repr的差別,例如datetime型別。

>>> import datetime

>>> d = datetime.datetime.now()

>>> d

datetime.datetime(2016, 5, 5, 22, 50, 30, 13924)

>>> print d

2016-05-05 22:50:30.013924

>>> e = eval('datetime.datetime(2016, 5, 5, 22, 50, 30, 13924)')

>>> e == d

True

說的有點羅嗦了,那對於list型別的物件,是怎麼print輸出的呢?

list.__str__(),是首尾輸出,中間是每個元素的__repr__()的結果,如果元素是unicode字串,那麼很不幸,我們看不到真正的漢字,只能看到可轉義的字串

所以最後的結果,不要直接print乙個列表,而是取裡面的元素(就題主的例子,列表的元素是個元祖,需要再取元祖的第0個元素)再列印,這時候就是元素的__str__方法,可以看到中文了。

在Ubuntu系統下,用Python語言編寫了乙個學生資訊登記系統,登記的資訊在退出終端後會清空

有時候缺點耐心 sudo apt get install mysql server 5.7 pip3 install mysql connector python linux minit上基本搞定,ubuntu上應該不差太多,mysql connector python這個驅動在mysql官網上有文...

求助Python大神在Jupyter用Pandas如何處理複雜資料?

import pandas aspd result df pivot table values sales index company columns date aggfunc sum df result 步其 stack 和 unstack的應用。官方文件案例如下 考慮到你提到資料情況,需要先做聚...

用latex在beamer下 用 textit 斜體無效 textbf可以 有大神知道怎麼解決嗎?

xyj2230 textit textbf 之類的各種字型風格設定命令是否有效,取決於你選用的字型檔是否存在這些字模,不存在對應字模,選擇無效。比如很少中文字庫中有 italic 字模,所以,命令 textit 對漢字無效。對於西文,解決方法是選用字型風格比較全的西文字庫。如 usepackage ...