やるだけPython競プロ日誌

競プロの解説をPythonでやっていきます。できるだけ初心者に分かりやすいように『やるだけ』とかは言わないようにします。コメントについては必ず読んでいます。どんなに細かいことでもいいのでコメントくださればうれしいです。

関数・単一解説

国会でも話に上がった "HASH" をPythonで -- hash()じゃないよ! --

以前、”国会にhash関数の話が出たwww”といって、そっちの界隈の人でちょっとした話題になっていました。では、hashとはなんなのか?分からない人もいると思います。それがわかっても、Pythonでの実装がわからない方もいらっしゃると思いますので、この記事を…

Pythonでenumerateを賢く使う。

enumerateって? 英語で『数え上げる』という意味です。この関数の引数にイテレータを与えると、何回そのイテレータを呼び出したかを数える数と、そのイテレータ自身を返します。 例えば for i, j in enumerate(range(5, 0, -1)): print(i, j) """ 0 5 1 4 2…

Pythonの無名関数=(lambda)について

lambda 分かりにくいですよね笑私も理解するために少し時間がかかりました。簡単に言うと”” def せずに関数を定義する ””ものです。もし、あるイテレータ・構造の二番目を取り出す関数を作るには def getsecond(n): return n[1] とできますが、もっと短く ge…

ただの回数繰り返しだけじゃない! range()の賢い使用法

rangeって? 英語で範囲 を現します。Pythonでは、第一引数から第二引数まで、第三引数区切りで値を作ります。 え?引数を3つも取れるの? そう思った方のための記事となりますので、すでに知っていた方はブラウザバックしていただいても大丈夫です…。 引数…

数え上げに使えるcollections の Counter のお話

"collections" ライブラリの "Counter"。文字通り、数えるためにあります。『数え上げ?普通にfor文回せばいいじゃんアゼルバイジャン』という方もいらっしゃるでしょう。お前それ競プロの前でも言えんの? for + リストでの数え上げ defaultdict をつかう数…

Python における list の本質と 二次元配列 ( 多次元配列 ) のお話。

こんなページを見てくださっているような方々は分かり切っていることかもしれませんが、わたくしなりに考えてみたことです。ネットで、私の疑問に直接回答しているサイトは見当たりませんでしたので、ここに記します。茶番開始です() 配列の宣言 Pythonでリ…

Python3 ~split関数について~

競技プログラミング(あるいはそれ以外でも)で使わない問題はないのではないと思うほど使用頻度の高いsplit()ですが、それを高度な使用をしようとしてできる人はあまり多くないのではないでしょうか。今回は、そんな愛されながらも謎に包まれたsplit()につ…

Python3 ~map関数について~

今回は map()関数 についてお話します。簡単に言うと、リストやタプルなどのシーケンスに対してmap(a, b) はbに対してaしたものを返す。ということです。たとえば def double(n): return (int(n) * 2) lis = ["114514", "810", "893"] print(list(map(double…