Home » 電子書籍 » VBAユーザーのためのPython超入門 » 1文字ずつのリスト作成もPythonならlist関数で簡単に

1文字ずつのリスト作成もPythonならlist関数で簡単に

KDP(Kindle Diect Publishing)による拙著『VBAユーザーのためのPython超入門』の「7-4. 文字列から1文字ずつ取得する」で、文字列から1文字ずつ出力する以下のようなPythonのコードをご紹介しています。

txt = 'abcde'
for i in txt:
    print(i)

同様の処理をVBAで行うより、簡単なコードで済むことが良くわかる例です。

for文で1文字ずつのリストを作成する

VBAで1文字ずつの配列を作る処理をご存知なら、拙著「8-7. リストのさまざまな操作」でもご紹介しているリストに用意されているappendメソッドと、先ほどのfor文を組み合わせて以下のようなコードが書けるのではないかと思います。

txt = 'abcde'
arr = []
for i in txt:
    arr.append(i)

中身が空のリストを作成しておいて、
  arr = []

for文の中で1文字ずつ順番にリストに追加しています。
  for i in txt:
      arr.append(i)

VBAで1文字ずつの配列を作成する場合

VBAで同様の処理を行う場合、

Dim txt As String
txt = "abcde"
    
Dim arr() As String
ReDim arr(Len(txt) - 1)
    
Dim i As Long
For i = 1 To Len(txt)
    arr(i - 1) = Mid(txt, i, 1)
Next

といったコードになるのに比べ、やはりシンプルなコードで済みます。

list関数で1文字ずつのリストを作成する

上記のfor文を使ってリストを作成する方法は身に付けていただきたいのですが、単純に何らかの文字列から1文字ずつのリストを作成したいのであれば、Pythonではもっと簡単なコードで済んでしまいます。

拙著の「8-6. rangeからリストを作成する」でもご紹介しているlist関数(厳密にはlistコンストラクタ)を使えば、ループ処理を使わず、1文字ずつのリストを作れます。

txt = 'abcde'
arr = list(txt)

これだけのコードで、

['a', 'b', 'c', 'd', 'e']

のように1文字ずつを要素として持つリストが作れます。これだけシンプルなコードで済んでしまうのを知ると、VBAでも同じようにできたらイイのになあと思わざるを得ません。

先述のfor文を使うコードとあわせて、ご自分の手を動かして確認してみてください。

最終更新日時:2020-11-11 05:12

[スポンサードリンク]

Home » 電子書籍 » VBAユーザーのためのPython超入門 » 1文字ずつのリスト作成もPythonならlist関数で簡単に

「VBAユーザーのためのPython超入門」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.