python lower方法的侷限性

2021-08-20 19:49:45 字數 724 閱讀 1072

日常工作中,往往有很多大寫轉小寫的需求。

比如設計es索引的時候往往會把大小寫相同的分詞歸在乙個索引內,這樣請求輸入也會強制轉成小寫再去查詢。

python2.7因為其對unicode的不友好,導致lower()這個方法有一定的侷限性,尤其是處理特殊unicode字元的時候。看下面的例子

>>> "aeiou".lower()

'aeiou'

>>> "æęïœú".lower()

'\xc3\x86\xc4\x98\xc3\x8f\xc5\x92\xc3\x9a'

>>> print "æęïœú".lower()

æęïœú

似乎沒有變成小寫,這是因為lower方法本身只支援ascii碼,對unicode不支援,但對unicode就好了。

>>> 

print

u"æęïœú".lower()

æęïœú

可以寫成通用函式

def

real_lower

(input):

if isinstance(input,str):

input = input.decode('utf-8')

input = input.lower().encode('utf-8')

return input

Element ui實現loading的區域性重新整理

在一次vue element ui後台管理系統的專案中,遇到這樣乙個問題,引入element ui載入框後,loading會佔滿整個螢幕,雖然通過改變路由實現了區域性重新整理,但是loading的全屏重新整理,讓人看上去很是不爽,以為是全域性重新整理。再乙個問題就是,乙個頁面中可能含有的多個請求,在...

消防局的設立

我先想的是貪心,但是沒有任何依據 所以rang了 然後想到了乙個有依據的貪心 我們可以找深度最深的乙個點開始考慮。可以證明,取此節點的爺爺一定是最優的。取自己 可以覆蓋自己,自己兄弟,父親,爺爺。取兄弟 可以覆蓋自己,自己兄弟,父親,爺爺。取父親 可以覆蓋自己,自己兄弟,父親,爺爺,父親的兄弟。取爺...

消防局的設立

p2279 hnoi2003 消防局的設立 主要思路 貪心,從葉子節點開始 按深度排序即可做到 從它父親的父親,把距離不超過 2 的節點都打上標記,ans 這樣一定最優,因為必須覆蓋那個沒被覆蓋的節點,而從祖父開始可以覆蓋更多的點。注意把根節點的父親設為根節點,否則從根節點開始跳就re了 inclu...