第32回【Python】配列に含まれている? 1、配列に含まれている? 2、配列に含まれている? 3
現在取り組んでいるのは、paiza ラーニング問題集「配列メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
Python をゼロから勉強してみよう、のコーナー 32 回目です。
それでは、今日も頑張ってみようと思います。
配列に含まれている? 1
以下のような配列があります。
10 13 21 1 6 51 10 8 15 6
この中に、6 が含まれているなら Yes、含まれていないなら No を出力してください。
要素を一つずつ検査する方法をとるか、もっと簡単な方法をとるか、学習という意味では・・・両方でしょ。
Python
L = [10, 13, 21, 1, 6, 51, 10, 8, 15, 6]
for li in L:
if li == 6:
print("Yes")
break
else:
print("No")
Python
L = [10, 13, 21, 1, 6, 51, 10, 8, 15, 6]
if 6 in L:
print("Yes")
else:
print("No")
VBA
L = Array(10, 13, 21, 1, 6, 51, 10, 8, 15, 6)
flg = True
For Each li In L
If li = 6 Then
Debug.Print "Yes"
flg = False
Exit For
End If
Next
If flg Then Debug.Print "No"
Python では for ~ else を利用することで、for 文が break しなかった場合の処理を書くことができる。他の言語ではなかなかそれが難しいので、フラグ管理を行うことが多い。
配列に含まれている? 2
整数 N が与えられます。
以下の配列に、整数 N が含まれているなら Yes、含まれていないなら No を出力してください。
5 12 6 84 14 25 44 3 7 20
すべてのテストケースにおいて、以下の条件をみたします。
・N は 1 以上 100 以下の整数
入力例
12
含まれているかどうか検査する値を標準入力から受け取るパティーン。
Python
N = int(input())
L = [5, 12, 6, 84, 14, 25, 44, 3, 7, 20]
for li in L:
if li == N:
print("Yes")
break
else:
print("No")
Python
N = int(input())
L = [5, 12, 6, 84, 14, 25, 44, 3, 7, 20]
if N in L:
print("Yes")
else:
print("No")
VBA
N = Cells(1, 1)
L = Array(5, 12, 6, 84, 14, 25, 44, 3, 7, 20)
flg = True
For Each li In L
If li = N Then
Debug.Print "Yes"
flg = False
Exit For
End If
Next
If flg Then Debug.Print "No"
配列に含まれている? 3
1 行目に整数 N, M が与えられます。
2 行目に N 個の整数 a_1, a_2, …, a_N が与えられます。
N 個の整数の中に、整数 M が含まれているなら Yes、含まれていないなら No を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・N, M は 1 以上 100 以下の整数
・a_i (1 ≦ i ≦ N) は 1 以上 100 以下の整数
入力例
5 1
1 2 3 4 5
すべてを標準入力から受け取るパティーン。
Python
N,M = map(int,input().split())
L = list(map(int,input().split()))
for li in L:
if li == M:
print("Yes")
break
else:
print("No")
Python
N,M = map(int,input().split())
L = list(map(int,input().split()))
if M in L:
print("Yes")
else:
print("No")
VBA
NM = Split(Cells(1, 1), " ")
N = Val(NM(0))
M = NM(1)
L = Split(Cells(2, 1), " ")
flg = True
For Each li In L
If li = M Then
Debug.Print "Yes"
flg = False
Exit For
End If
Next
If flg Then Debug.Print "No"
型を意識しないといけない。数値と文字列で比較しても絶対にイコールにはならない。今回の場合は、いちいちすべてを数値に変換するのが面倒だったので、文字列と文字列で比較するように書いてみた。
最後に
実際に仕事でコードを書いていると、in 演算子を結構使っている気がする。ふとしたことで in 演算子の存在を忘れてしまって、要素を一つずつ検査するように書いて、その途中で in 演算子でええやん、って反省する。これだけ in 演算子と書いたのだから、もう忘れない!
型を意識するのはとても重要なことだと思う。Python はなんでも入ってしまうので、意識がおろそかになってしまって、エラーが出ているのを見ることがある。融通利きすぎるのも考えものなのかもしれない。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません