第102話 「パワオトメくん」の癖を浅~くいじくる。

📕2023.02.12朝時点のレポート:


 🌎https://kakuyomu.jp/users/hyper_space_lab/news/16817330653113216903


 ◆◆◆


 本日は「パワオトメくん」(MS Power Automate Desktop)ネタである。

 パワオトメはプログラミング言語という括りではないのだが、特に使いこなせる言語を持っていないためこの子を多用している。


 だが、癖が強い。メニューがわかりにくい。ヘルプが謎。

 MSさん、何とかしてください。タダだからあまり強く言えないけど。


 今日はその中で、いろいろ試行錯誤して解明して来た「リスト」の使い方について些細なヒントを提供したい。

 自分のための備忘録でもある。


 🖋リストって何よ。


 パワオトメでWebデータを採掘すると、「データテーブル」か「リスト」が作られることが多い。単独のデータなら「変数」なのだが、普通2つ以上のデータを取得するだろう。


「データテーブル」と「リスト」の違いは、経験上こんな感じである。


 ・データテーブル:表形式とか、データベース的な「セット」になったデータグループが繰り返し現れる場合。「行列」or「多次元配列」

 ・リスト:一連のデータを連ねて記録する場合。「配列」


 正確な定義はゲイツさんに聞いて下さい。

 イメージで言うと、


 ・データテーブル:{[a,b,c],[x,y,z]}

 ・リスト:{a,b,c}


 みたいな感じである。


(注)ところが、リストはリストを要素とすることもできるようだ。それって、データテーブルと同じじゃねと思うのだが、この辺はまだ掘り下げていない。


 🖋「新しいリストの作成」:


 このメニューでリストを作成することができる。プログラミング言語的に言うと「変数の宣言」的なもの。

 この段階では容れ物だけが作られる。


 →「List1」「List2」「List3」を作ってみよう。はい。できた。


 🖋「項目をリストに追加」:


 自分でリストにデータを格納するときに使用する。面倒なことに、項目(データ)は1つずつ追加する必要がある。リボルバーに一発ずつ弾込めしている感じ?


(一気に配列としてセットするやり方を発見した人はぜひ教えて下さい。ファイルを読み込むのは無しね)


 List1 → [a, b, c]

 List2 → [x, y, z]


 上記のように、項目を追加してみた。「[]」(半角四角括弧)で囲むのはパワオトメの表記ルールである。

 List1には「a」「b」「c」の3つ、List2には「x」「y」「z」の3つがセットされた。


 🖋「リストの統合」:


 これが癖じゃあ! 「統合」と言われたら、こうなってくれると思わない?


 List1 + List2:[[a, b, c], [x, y, z]] または

 List1 + List2:[[a, x], [b, y], [c, z]]


 どちらかというと後者かな? こうなってほしいと期待しますよ。これだと「データテーブルに列を追加する」ことに等しいので。

 前者だと「データテーブルに行を追加する」イメージですね。


 実際にはこうなる。


 List1 + List2:[a, b, c, x, y, z]


 そうかも知らんけど、それはそんなにやりたないで?


 前者の処理を行いたければ、「List1とList2を項目としてList3に追加する」という処理が必要だ。

 こうすると、


 List3:[[a, b, c], [x, y, z]]


 という入れ子構造のリストが作成される。


 🖋リストからデータを取り出す:


 その1:「Loop」-「For each」を使う:


 フロー制御の中で行うにはこれがオーソドックスだろう。


 For each CurrentItem in List1

  Do xxx

 End


 的な感じで繰り返し命令を定義すると、「a」「b」「c」の順に「Do」の箇所で定義された処理を行ってくれる。ループのたびに変数CurrentItemの中身が変わってくれるのだ。

 

 リストの内容項目が何個あるかを考えなくてもループが組めるのでとても便利なのだが、逆に今何個目なのかがわからなくなる。何番目のデータかをトリガーにして処理を変えたいときってあるよね?


 とこらができない。癖!


 知りたければ自分で変数を作って、それをループが回るたびに1ずつ増加させる必要がある。


(誰かシステム側から取得する方法を知っていたら教えて下さい。🙇)


 🖋任意の位置の項目をリストから取り出す方法:


 これがヘルプのどこにも書いていない。ゲイツさんよー!😠


 試行錯誤して発見しましたよ。刮目してみるべし。


 List1[0]:a

 List1[1]:b

 List1[2]:c


 タダー♫!👏✨


 「アホか? そんなの配列の常識だろう?」


 そう思ったアナタ! パワオトメの癖を舐めてはいけませんぞ。パワオトメ語では上記をこう書くのです。


 %List1[0]%

 %List1[1]%

 %List1[2]%


 配列のインデックスまで含めて変数名として扱うという気持ち悪さ。癖が強いんじゃ!


 ちなみにプログラムとか良くわからんよーと言う人は、「[]」の中身が「0」から始まっているのに違和感があるかもしれない。これはCなどの言語系統では普通なのだが、「インデックスやアドレスは0から始まる」というルールに従っている。


 変な所だけプログラミングっぽいのよ。だからリストの項目数が3であっても、インデックスの上限は2になる。ここ間違いやすいから気を付けてね。


 🖋List.Countという属性値:


 いま述べたリストの(総)項目数はシステム側が勝手に記録しているので呼び出すことができる。


 %List1.Count%


 と指定すると、この場合は「3」が返って来る。

 項目の総数であって、ループフローでの現在位置ではないので勘違いしないでね。


 ◆◆◆


 今回はここまで。

 Webデータを採掘してくると、データテーブルとリストを多用することになるので、こいつらと親しくお付き合いする必要がある。


 癖が強い子たちだけど、仲良くして上げてねぇ~。👋

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る