第56回【Python】末尾への要素の追加、指定位置への要素の追加
現在取り組んでいるのは、paiza ラーニング問題集「配列活用メニュー」になります。
はじめに
猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。
Python をゼロから勉強してみよう、のコーナー 56 回目です。
AWS の進化が早すぎて、追いかけるのが大変です。最近、新たに勉強を始めたメンバーから質問を受けて、そんなサービスあるの? ってことがありました。AWS は奥が深い。底知れないです。
それでは、今日も頑張ってみようと思います。
末尾への要素の追加
配列 A と追加する要素 B が与えられるので、B を A の末尾に追加したのち、A の全ての要素を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 100
・0 ≦ A_i , B ≦ 100 (1 ≦ i ≦ N)
5
1
2
3
4
5
10
配列の末尾に要素を追加。これもよくあるパターン。
Python
N = int(input())
A = [int(input()) for _ in range(N)]
B = int(input())
A.append(B)
print(*A,sep="\n")
VBA
N = Cells(1, 1)
Dim A() As Integer
ReDim A(N - 1)
For i = 0 To N - 1
A(i) = Cells(i + 2, 1)
Next
B = Cells(N + 2, 1)
ReDim Preserve A(N)
A(N) = B
For Each v In A
Debug.Print v
Next
指定位置への要素の追加
配列 A と追加する位置 n と追加する要素 B が与えられるので、B を A_n の後ろに追加した後の A を出力してください。
すべてのテストケースにおいて、以下の条件をみたします。
・1 ≦ N ≦ 100
・0 ≦ A_i , B ≦ 100 (1 ≦ i ≦ N)
・1 ≦ n ≦ N
5
1
2
3
4
5
3 10
配列の指定位置に要素を追加。これもよくあるパターン。
Python
N = int(input())
A = [int(input()) for _ in range(N)]
n,B = map(int,input().split())
A.insert(n,B)
print(*A,sep="\n")
VBA
N = Cells(1, 1)
Dim A() As Integer
ReDim A(N - 1)
For i = 0 To N - 1
A(i) = Cells(i + 2, 1)
Next
pB = Split(Cells(N + 2, 1), " ")
p = Val(pB(0))
B = Val(pB(1))
ReDim Preserve A(N)
For i = N To p + 1 Step -1
A(i) = A(i - 1)
Next
A(p) = B
For Each v In A
Debug.Print v
Next
VBA だと配列に要素を追加するのがめんどくさい。
最後に
Python では数行で書くことができるのに、VBA ではとてもめんどくさい遠回りな書き方をしなければならない。頭の中をよく整理して、どこに挿入するのかを明確にイメージできないと、ズレてしまいそう。
配列の操作はいろいろな場面で使うことが多いと思うので、しっかりマスターしておきたい。まぁ、VBA でこんな面倒な使い方するかどうかは謎だけれど。どこかの誰かの参考になっていれば幸いです。
引き続き、よろしくお願いいたします!
ディスカッション
コメント一覧
まだ、コメントがありません