第153回【Python】配列(リスト)の要素の出力、1文字ずつ出力、文字の重複カウント

現在取り組んでいるのは、paiza ラーニング問題集「B ランクレベルアップメニュー」になります。

はじめに

猫とキャンプと野球観戦と AWS が大好きな旦那、LeoSaki です。モフモフしたい。

Python をゼロから勉強してみよう、のコーナー 153 回目です。

楽しくないことを無理矢理にでも楽しいと思うことができる、というのも才能だと思います。そして、そんな中で本当に楽しいことを見出すことができる、というのも才能だと思います。

それでは、今日も頑張ってみようと思います。

今回取り組む内容について

以下は、前回までに取り組んだ問題とまったく同じなので、飛ばします。
コードは数書いてナンボとかカッコつけたこと書いてましたが、あまりにも多いので挫折しました。

STEP: 1 文字列の長さ
STEP: 2 文字列の1文字目

配列(リスト)の要素の出力 (paizaランク D 相当)

指定された配列(リスト)を定義し、配列(リスト)の要素をインデックス順に1行ずつ出力してください。

なし

“Nara", “Shiga", “Hokkaido", “Chiba"
を要素に持つ配列(リスト)をプログラムで定義し、使用すること。


期待する出力

配列(リスト)の要素をインデックス順に1行ずつ、全て表示してください。

Nara
Shiga
Hokkaido
Chiba


すべてのテストケースにおいて、以下の条件をみたします。

なし


入力例

なし

出力例

なし

リストから要素を一つずつ取り出す。基本操作です。

Python
cities = ["Nara", "Shiga", "Hokkaido", "Chiba"]
for city in cities:
    print(city)
VBA
Sub string_count_2()

    cities = Array("Nara", "Shiga", "Hokkaido", "Chiba")
    For Each city In cities
        Debug.Print city
    Next
    
End Sub

1文字ずつ出力 (paizaランク D 相当)

文字列が入力されるので、それらの文字を、1文字ずつ出力してください。

s

期待する出力

文字列 s の各文字を、1文字ずつ出力してください。
1文字出力ごとに改行してください。


すべてのテストケースにおいて、以下の条件をみたします。

1 ≦ (文字列 s の長さ) ≦ 30
s は半角英数字で構成された文字列


入力例

input

出力例

i
n
p
u
t

リストの次は文字列から 1 文字ずつ。

Python
s = input()
for c in s:
    print(c)
VBA
Sub string_count_3()

    s = Cells(1, 1)
    For i = 1 To Len(s)
        Debug.Print Mid(s, i, 1)
    Next
    
End Sub

文字の重複カウント (paizaランク D 相当)

1行目の文字が、2行目の文字列の中に何個出現するかをカウントして出力してください。

c
s

期待する出力

文字列 s の中に、文字 c が出現する個数を数えて出力してください。


すべてのテストケースにおいて、以下の条件をみたします。

c は1つの文字
1 ≦ (文字列 s の長さ) ≦ 30
c, s は、半角文字で構成された文字列


入力例

A
abdeeAAbAAAbfde

出力例

5

Python はここまで段階を踏んで学んできたことをまったく活かせなくなってしまう関数が用意されている。文字数を数えて 1 文字目から順番に検査する手順のために段階を踏んできていたのだろうけれど。

Python
c = input()
s = input()
print(s.count(c))
VBA
Sub string_count_9()

    c = Cells(1, 1)
    s = Cells(2, 1)
    
    ans = 0
    For i = 1 To Len(s)
        If Mid(s, i, 1) = c Then
            ans = ans + 1
        End If
    Next
    
    Debug.Print ans
    
End Sub

最後に

ここまでやってきて思うのは、paiza は段階を踏んで学習を進めてくれているのに、Python はそれらを無に帰してしまうような関数を用意してくれている、ということか。Python だけ勉強している人は、ちょっとしたアルゴリズムとか知らないかもしれない。

昔ながらの手法は覚える必要はないけれど、知っていて損はないと思う。応用して利用することができるかどうかは腕次第?

引き続き、よろしくお願いいたします!

Pythonpaiza,学習,Python

Posted by LeoSaki