1. ホーム
  2. python

[解決済み] リストを使ったネストされたForループの理解

2023-01-27 15:58:41

質問

もし私が2つの文字列を持っていたら 'abc''def' というように、2つのforループを使って、すべての組み合わせを得ることができました。

for j in s1:
  for k in s2:
    print(j, k)

しかし、これをリスト内包で行えるようにしたいのです。いろいろ試してみたのですが、うまくいきません。どなたか方法をご存じないでしょうか?

どのように解決するのですか?

lst = [j + k for j in s1 for k in s2]

または

lst = [(j, k) for j in s1 for k in s2]

はタプルが必要な場合

質問のように for j... が外側のループです。 for k... は内側のループである。

基本的には、リスト内包の中に独立した「for x in y」節をいくつでも、次々にくっつけることができます。

より読みやすくするために、複数行を使用します。

lst = [
       j + k         # result
       for j in s1   # for loop 
         for k in s2 # for loop
                     # condition   
       ]