Pythonエンジニア認定基礎試験の復習
Pythonエンジニア認定基礎試験の模試、DIVE INTO EXAM の復習。
わからなかった問題の中から、特にこれはアウトプットしておきたい! と思ったものについて書いていく。
reprlibモジュール
Pythonインタープリタにて以下のように入力した場合の出力結果として正しいものを選びなさい。
>>>import reprlib >>>reprlib.repr(set('diveintocode'))
正解: "{'c', 'd', 'e', 'i', 'n', 'o', ...}"
私:??
これは全然わからなかった。
reprlibって何?という感じ。reprもわからないし、setもわからない。お手上げ。
調べてみると、どうやら「reprlib.repr( )」は一括りで使うらしい、ということがわかった。
set→reprlib.repr( ) という順番で確認していく。
set
setは、重複しない要素を、順不同に集める。
言い換えると、集合(重複しない要素を順不同に集めたもの)をつくる。
set( )を使うと重複した要素を排除してくれる。
「diveintocode」では「d, i, e, o」が何度か登場するけど、それぞれ1個ずつだけ抜き出してくれる。
set( )を使った時の出力は { } で囲まれる。
試しにターミナルで出力してみた結果は感な感じ。
確かに、重複していないし、順不同になってる。外側は{ }で囲われて、一つ一つの要素は ' '(シングルクォーテーション)で括られている。
{ } で囲むところが辞書のdictと似てる。
reprli.repr( )
reprlibはモジュール。
その中でreprlib.repr( ) は省略してくれる。
たくさんある要素の6個目までを表示して、あとは省略してくれる。
しかも、c, a, b, ... みたいにバラバラな順番の要素を、a, b, c,...のように昇順に並べてくれる。
実際に出力してみるとこんな感じ。
デフォルトで 6個らしいので、表示する要素の数は変更できるのかな?
厳密にいうと、デフォルトが 4 や 5 になる場合もあるらしいのだけれど、今回はそこまで深追いしない。
とにかく、reprlib.repr( )は省略してくれるうえに、昇順にソートしてくれるということを覚えておきたい。
余談だけど、reprlibはモジュールなので、最初に「import reprlib」をしておかないとエラーになる。
モジュールが何なのか詳しくわかっていないけど、イメージ的には
「目的に合わせて、使いたいその時に、すでにあるモジュールを外側から持ってくる」
という感覚。
自分の部屋とは別の、書斎の本棚に本がたくさん入っていて、目的に合わせて必要な本を自分の部屋に持ってくる、みたいな。
あってるのかな?
お疲れさまでした!
reprlib.repr( )や set、clear( ) や del について、詳しくなった!
次は、repr( ) についてもう少し調べてみたい!