【python challenge】Level2

2389 ワード

ぶんせき
タイトルは文字を識別することを言って、文字は画像の本の上で、ページのソースコードの中にあるかもしれません.機知に富んだ私はすぐにF 12を押して、たくさんの混乱した文字を発見して、要求は中から珍しい文字を探し出すことで、知能指数の感動的な私はまたすべての文字が現れた回数に対して順番に~~~を並べて、実はa-zの文字だと判断して彼をつづるだけです.
私のIQを味わってください~
dict_count = {}
for ind, ch in enumerate(mess_str):
    if dict_count.get(ord(ch)):
        dict_count[ord(ch)] += 1
    else:
        dict_count[ord(ch)] = 1

heap = []
char_str = ""
for ch_int, count in dict_count.items():
    heapq.heappush(heap, (count, ch_int))
    #        ,              ~
    if ord('a') <= ch_int <= ord('z'): 
        char_str += chr(ch_int)

print(char_str)
res = [heapq.heappop(heap) for i in range(len(heap))]
print(res)
res_str = "".join(chr(va[1]) for va in res)
print(res_str)

Learn
知能指数が人を感動させるのも利益があって、heapqモジュールの技能の点Get!!!heapq:pythonのスタックモジュールは、優先キューを容易に実現し、最大N個の要素、最小N個の要素を求めることができます.まあ、これはもともとスタックの最も簡単な応用です
基本インタフェース:
  • heappush:スタック
  • heapppop:最小値ヒープ
  • heappushpop:新しい要素がスタックされ、その後、最小値がスタックされ、前の2つのインタフェースの組合せ
  • に相当する.
  • heapify:リストをスタック
  • に変換
  • heapeplace:まずスタックを出て、それからスタックに入って、スタックの大きさを維持して、pushpopの順序とは違いますよ.ステップ呼び出しよりも効率的です.
  • nlargest:最大N個の要素
  • を返します.
  • nsmallest:最小N要素
  • を返します.
  • merge:これは少し複雑です.mergeの仕事は、複数の列挙可能なデータを統合し、スタック属性を維持することです.3つのパラメータ(*iterables,key=None,reverse=None)があり、keyとreverseは3.5以降に追加されます.
  • key:リストデータ処理に対して比較のための値
  • を返す関数である.
  • reverse:ブール値です.trueに設定すると、すべての比較結果が反転します.


  • ref:[-]python heapqドキュメント