プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【Python連載】タプル -016-

www.pon-x.jp

↑前回の続き

今回はタプルを紹介します。

タプル

タプルはリストにとてもにていますが、大きい特徴としては作成後に要素を変更することができないということが挙げられます。

では試してみます。

タプルを作成

n = ("あ", "い", "う", "え", "お")

n

f:id:hanabusa-snow:20210914084641p:plain

リストと同じようにあ塚つことができます。

print(n[2])
print(n[2:4])
print(n[2:])
print(n[:4])

f:id:hanabusa-snow:20210914084736p:plain

タプルは変更できない

タプルは作成後に変更することができないことを確認してみます。

# タプルは変更ができない。その1
# エラーになります。

n[2] = "か"

f:id:hanabusa-snow:20210914084858p:plain

# タプルは追加ができない。その2
# エラーになります。

n.append(1."か")

f:id:hanabusa-snow:20210914084931p:plain

# タプルは削除ができない。
# エラーになります。

n.pop(1)

f:id:hanabusa-snow:20210914084957p:plain

こんなかんじで、いずれもエラーになります。

作成はリストと扱い方がほぼ同じ

例えば、内包表記も可能です。

n = tuple(i for i in range(1, 11))

n

f:id:hanabusa-snow:20210914085106p:plain

こんなかんじで、扱うことができるタプルを紹介しました。


■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】リストの活用 -015-

www.pon-x.jp

今回は、リストを活用したちょっとしたテクニックを紹介します。

インデックスと要素を取り出す

リストの要素と、それが何番目の要素かということを知りたい時があります。
そんなときは、enumarateを使いましょう。

n = ["あ", "い", "う", "え", "お"]

for i,char in enumerate(n):
    print(i,char)

f:id:hanabusa-snow:20210910082811p:plain

2つのリストを要素ごとにまとめる

2つのリストを要素ごとにリストにしたいというときがあります。 そんなときは、zipをつかいましょう。

n = ["あ", "い", "う", "え", "お"]
m = ["か", "き", "く", "け", "こ"]

[i for i in zip(n,m)]

f:id:hanabusa-snow:20210910082951p:plain

こんなかんじで、リストはたくさんの要素を一つの変数に入れられる便利なものですが、さらに応用的につかうことでさまざまなデータを格納することができます。
テクニックを駆使することで、よりコードを短くできるのでぜひ覚えておきましょう。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】多次元リスト -014-

www.pon-x.jp

今回は、リストの要素にリストを入れた多次元のリストを紹介します。

2次元リスト

リストを3つ作って、それを要素とするリストを作成してみます。

s = [0, 1, 2]
t = [3, 4]
u = [5, 6, 7, 8]

r = [s, t, u]

r

こんなかんじに、リストの中にリストが入りました。
f:id:hanabusa-snow:20210528090641p:plain

こんなかんじに、どんどん入れ子にしていけば、3次元、4次元となっていきますが、今回は2次元にとどめておきます。

2次元リストの要素を呼び出してみる。

2つ目の要素を呼び出してみます。

r[1]

インデックス番号は0から始まるので、2番目は1で呼び出せます。
f:id:hanabusa-snow:20210528090821p:plain

さらに、掘り下げて「3」だけをとるにはこのようにします。

r[1][0]

このとおりです。
f:id:hanabusa-snow:20210528090936p:plain


以上になります。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】リスト内包表記 -013-

www.pon-x.jp

今回は、繰り返しを用いた簡単なリストの作り方である、リスト内包表記を紹介します。

リスト内包表記

まず、通常のfor文を使って、0から9までのリストを作成してみます。

r = []

for i in range(10):
    r.append(i)
    
r

この通り、できました。
f:id:hanabusa-snow:20210526083234p:plain


では、リスト内包表記を使ってみるとこんな感じに1行で書けます。

r = [i for i in range(10)]

r

この通り、さきほどと同じ結果が得られます。
f:id:hanabusa-snow:20210526083424p:plain

if分も使えます

例えば、20未満の整数で3の倍数だけを取り出すとき、こんな風に書けます。
※ あえて、forとifをつかってますが、もっと簡単にかけます。

r = []

for i in range(1, 20):
    if i % 3 == 0:
        r.append(i)
        
r

この通り、できました。
f:id:hanabusa-snow:20210526083706p:plain


では、リスト内包表記でやってみます。

n = [i for i in range(1, 20) if i % 3 == 0]

n

こんなかんじで同じ結果が得られます。
f:id:hanabusa-snow:20210526083811p:plain

以上です。コードは少なくすっきり書くと、見やすくなり修正も加えやすいです。
ぜひ覚えておきましょう!!


■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】リスト(range) -012-

www.pon-x.jp

前回に続き、今回もリストです。
今回は、rangeというものを使って、複数の要素を簡単に作ってしまします!!

range

range()は範囲を決めるもので、list()と合わせることで、複数の要素を作成します。
では、20未満の要素のリストを作成してみます。

n = list(range(20))
n

以下のように、0から始まっていることに注意しましょう。
range(20)は0以上、20未満の範囲となります。
f:id:hanabusa-snow:20210521084053p:plain


次に、rangeの引数を2つにしてみます。

n = list(range(5, 20))
n

これは、5以上20未満の範囲の要素をリストにしたものになります。
f:id:hanabusa-snow:20210521084313p:plain


今度は引数を3つ入れてみましょう。

n = list(range(5, 20, 3))
n

5以上、20未満の範囲で、3区切りで増加する要素ということになります。
f:id:hanabusa-snow:20210521084440p:plain

以上今回はここまでです。


■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】リストのコピー -011-

www.pon-x.jp

今回は前回のリストの変更に続き、リストをハンドリングする方法として、リストをコピーする方法を紹介します。

リストのコピー

作成したリストは、単純に別の変数に代入しようとすると失敗します。
例を紹介します。

まずは、以下を実行してみましょう。

o = ["さ", "し", "す", "せ", "そ"]

p = o

p.append("た")

p

oをpに代入して、pに「た」を加えたので、以下のように表示されます。
f:id:hanabusa-snow:20210520100557p:plain

次に、oを表示してみます。

o

以下のようになります。
f:id:hanabusa-snow:20210520100652p:plain
!!!なんとpに追加したはずの「た」がoにも追加されてしまうのです。

参照渡し

実は、pにoを代入するとき、参照渡しという方法で値を渡しています。
つまり、pはoを参照するショートカットのようなオブジェクトが生成されているのです。

ちなみに、変数にはそれぞれにユニークなIDが湯よされているのですが、id()というものを用いると、確認ができます。

print(id(p))

print(id(o))

pとoのIDが同じということがわかります。
f:id:hanabusa-snow:20210520101203p:plain

つまり、pはoを参照していたので、pに追加しようと思った要素は実はoに追加されていたということなのです。
これを値の参照渡しと呼びます。

コピー

では、リストはコピーができないのかということなのですが、ちゃんとできますのでご安心を!!
copy()というもので、それが実現できます。

o = ["さ", "し", "す", "せ", "そ"]

p = o.copy()

p.append("た")

print(p)

print(o)

このようにpに「た」を加えても、oに影響がないことが確認できます。
f:id:hanabusa-snow:20210521083700p:plain


以上今回はここまでです。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com

【Python連載】リストの変更 -010-

www.pon-x.jp

前回からリストを紹介していますが、今回もリストです。
今回は、リストの要素を変更してみたいと思います。

リストの要素の変更

リストの要素を変更するときは、インデックス番号で指定して、変更したい値を代入するだけです。

n = ["あ", "い", "う", "え", "お"]
n[4]="か"
n

こんなかんじに、「え」が「か」にかわります。
f:id:hanabusa-snow:20210519083355p:plain

要素の追加

今度は、リストの末尾に要素を追加してみます。

n = ["あ", "い", "う", "え", "お"]
n.append("か")
n

こんなかんじに、末尾に「か」が追加されました。
f:id:hanabusa-snow:20210519083521p:plain

要素を間に挿入

appendは末尾に追加でしたが、要素の間に挿入することもできます。
このとき、insertを使うのですが、挿入する要素をどのインデックスとして挿入するかを指定します。

n = ["あ", "い", "う", "え", "お"]
n.insert(1, "か")
n

インデックス1に挿入したので、左から2番目に「か」がはいりました。
f:id:hanabusa-snow:20210519083725p:plain

ちなみに、インデックスをマイナスの値で指定すると、リストの後ろから数えて挿入してくれます。

n = ["あ", "い", "う", "え", "お"]
n.insert(-1, "か")
n

-1を指定すると、後ろから2番目に挿入されます。
1番後だとappendとおなじなので、-1で後ろから2番目に入るということになります。
f:id:hanabusa-snow:20210519083916p:plain

要素を削除する。

要素を削除する場合は、popでインデックス番号を指定します。

n = ["あ", "い", "う", "え", "お"]
n.pop(1)
n

「い」が削除されました。
f:id:hanabusa-snow:20210519084058p:plain

マイナスを使えば、後ろから指定することもできます。

n = ["あ", "い", "う", "え", "お"]
n.pop(-2)
n

「え」が削除されます。
f:id:hanabusa-snow:20210519084215p:plain

リストの結合

2つのリストを結合します。

s = ["か", "き", "く", "け", "こ"]
m = ["さ", "し", "す", "せ", "そ"]
s + m

ひとつのリストになります。
f:id:hanabusa-snow:20210519084325p:plain


以上、今回はリストをハンドリングする方法を紹介しました。

■告知 Pythonプログラミングを学ぶ基礎講座を開設しています。
興味がある方は、ぜひこちらから。
無料相談もやっております。

pumpkin-labo.com