先日、なんと、ショートカットについてのお問合せを頂きまして、嬉しかったです!

個別でメールにて、全力回答させていただきました。

お問い合わせの内容は、同じ疑問を持つ方に対して、とても参考になる内容であると感じています。

スクショも交えながら、共有したいと思います。

尚、ご質問者様のお名前につきましては、プライバシーへの配慮から伏せさせていただいています。

今回、頂いたご質問

「リスト」を辞書の値に設定しているが、「辞書の値を取得」のアクションで値のリストの1番目のみを取得する方法はありますか?

結論(ごうはち調べ)

「辞書の値を取得」というワンアクションだけでは、辞書の値の中にあるリストの一部を絞って取得することはできません。

また「辞書の値を取得」直後に出力された値は、辞書の値がリストであっても、ショートカットアプリ上では 「順番指定ができるリスト」ではなく、「ただの値(文字列)」として扱われているようです。

踏まえて、辞書の値であるリストの中身を、順番指定した項目だけを取り出したい場合には、こんなフローになります。

辞書
(キーで値を選ぶ)

辞書の値を取得
(中身をそのまま出す)

値(この時点)
りんご / バナナ / みかん
※ 順番は扱えない

リストとして扱える処理
(例:テキストを分割)

リスト
1番目:りんご
2番目:バナナ
3番目:みかん

リストから項目を取得
→ 1番目だけ取れる

上記の挙動をスクショを交えて、具体的に見ていきます。

この辞書の中にある「フルーツ」がキーになっているリストの値が本丸です。

この値は、辞書内にリストとして、確かに収納されています。

疑問点 1 【辞書の値を取得】のアクションで項目を指定して取り出せないのはなぜか。

【辞書の値を取得】は、キーに対応する値を“そのまま丸ごと取り出す”ためのアクションだからです。

そのため、並び順を基準に一部だけを抽出するといった操作は行えません。

辞書の値がリストであっても、このアクションで取り出した時点では、中身がすべて外に出てきます。

ちなみに、このように辞書の直下に【リストから項目を取得】をおいてもダメです。

疑問点 2 取り出した後の値に【リストから項目を取得】のアクションが効かないのはなぜか。

【辞書の値を取得】のアクションで、取り出した後の値に【リストから項目を取得】で項目を指定しても、ガン無視され、全部表示されます。

ごうはち

赤色の【リストから項目を取得】のアクションで、最初の項目を指定しても、言うことを聞いてくれず、全部表示されてしまいます。

これは、辞書から取り出したこの時点の値が 「順番指定できるリスト」として扱われていないため、結果、単に値がそのまま表示されている状態というのがオチです。

ではどうすればいいのか

値を 「順番指定ができるリスト」として扱える状態にする必要があります。

「リストから項目を取得」で、順番指定が可能な主な例は、次の通りです。

  • リストアクションで作成したリスト
  • テキストを分割した結果(改行など)
  • 写真やファイルを複数取得した結果
  • 繰り返し処理で集めた結果、など。

テキスト分割を使う場合ならば、

辞書の値を取得
(辞書から値を取り出す)

テキストを分割(改行など)
(改行ごとに区切って、項目の並びにする)

リストから項目を取得(最初の項目)
(先頭だけ取り出す)

結果
→ 1番目のみ取得できる

という流れにすると、
1番目のみの値を取得できます。

辞書は「どれを取るか」を決めるもので、値を取得すると、中身を丸ごと取り出す。順番や抽出は「リストになってから」扱う。

そんなイメージでいいのかと思います。

「今、その値がショートカット上で、どの段階として扱われているか」を意識することで、混乱はかなり減ると思いますが、こればっかりは試行錯誤をしないとわからない部分でもありますね。。

最後に

今回のお問い合わせをきっかけに、私自身も改めて挙動を整理することができ、とても勉強になりました。ありがとうございます。

この記事を読んで、分からない点や「ここはどうなんだろう?」という疑問があれば、まとまりきっていなくても構いませんので、 気が向いたときにでもお気軽にお問い合わせくださいね。

ごうはち
ごうはち
お問い合わせ、ありがとうございました!
ABOUT ME
ごうはち
R6に第一子が誕生し、44歳で父になる。 共働きで子育ての真っ最中。 育児が始まって「iPhoneをもっと便利に使いたい」と思い、ショートカットづくりにハマる。レシピの真似だけでは物足りず、自分で考えて組めるようになりたいと勉強の日々。 趣味・特技:家庭菜園/おむつ交換/豚バラの生姜焼き