1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

APG4bをPythonで解きたい(第4章の4.01と4.04だけ)

Posted at

はじめに

AtCoderに存在するAPG問題をPythonで解いてみます。
こちらPython始めたての初心者なので、「もっといい書き方あるよ!」等がありましたら教えていただけると大変助かります。
また、なぜ4.01と4.04のみかというと、Pythonでできる箇所がこの2つだけだと伺ったためです。C++はいろいろできてすごいなぁ…

4.01.includeディレクティブ

Pythonでいう「import」のことだ!
C++でいう#include <(ファイル名)>がPythonでいうimport (モジュール名)ということですね。

C++だと、#include <bits/stdc++.h>を入れないと出力動作ができないらしい。Pythonではモジュールを入れなくてもprint()できるよ。

あと、C++では自作のソースファイルをincludeして、別のソースコードで使用することができる。
え、Pythonだと別のファイルのソースってどうやって持ってくるんだろう……調べます。

方法いっしょだ…。inportしたいファイルの「~.py(つまり拡張子)」を抜いたファイル名をimport (拡張子を抜いたファイル名)という形でもってくるだけ。いつもといっしょ。

【参考】includeディレクティブ

a.py
import b

print(b.f(10)) #100
b.py
def f(x):
    return x*x #xを2乗するだけ

b.pyがimportされたa.pyは下のコードとやっていることが同じ。

def f(x):
    return x*x

print(f(10)) #100

モジュールをimportするときも、「モジュール名.py」っていう色々な関数が書かれているソースファイルから関数を持ってきてるイメージなのか……あまり意識したことがなかった。良い勉強。

4.04.イテレータ

イテレータってなんだ……?
全くわからない。なんかlistみたいなものっぽいけどなんだろうこれ。
sort()をするときに使う……?なんで……?元の配列はどうなってるんだ……?

わかった!!!!!!sort()って元の配列がソートされるわけじゃなくて、イテレータっていう元の配列のコピーをソートしてますよってことなのでは……?
sort()しても元の配列がsortされるわけじゃないもんね。
え、けどイテレータと配列って何が違うんだ?

イテレータのいいところ

  • 配列以外のデータ構造でも同じように扱える・整理できる

なるほど、つまり配列でも辞書型でもイテレータにしてしまえば同じ操作で位置の操作等ができるってことですか……?ちょっと難しいですね……イメージが難しい……

listとdictでイテレータを作ってやってみます…

#listで作成
list = [1,2,3,4,5,]
iter_list = iter(list)

#dictで作成
dict = {"first":1,"second":2,"third":3,"fourth":4,"fifth":5}
iter_dict = iter(dict)

for i in iter_list:
    print(i) # 1 2 3 4 5

for i in iter_dict:
    print(i) # first second third fourth fifth

あれ、dictのほうだとkeyが出力されちゃう。何か間違えたか。あれ。

一旦泥沼にはまりそうなので、とりあえず

  • イテレータはlistやdictとかのコンテナ要素をコピーして、同じような扱いにすることができる(要検証)(イテレータをまだよくわかっていない)
  • sort()のときとかに使われてるよ。

ちょっと日を改めて読み返します……

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?