LoginSignup
1
0

More than 3 years have passed since last update.

[Python]リスト内法表記で複数の返り値を返す方法

Last updated at Posted at 2019-05-22

リストなどでまとめて返してあげましょう。

OK
[[i,i] for i in range(0,10,1)]

「リスト内法表記 複数 返り値」で検索しても一瞬で出てこなかったので、検索用として記しておきます。


リストに入れないとエラーが出ます。

NG
[i,i for i in range(0,10,1)]

これで大丈夫だったので感覚的に大丈夫かなと思ったらいけませんでした。
関数の返り値が複数の場合はタプルで帰ってくるので当たり前でしたね。

OK
def double(x):
    return x,x
[double(i) for i in range(0,10,1)]

これと同じですね。

OK
[(i,i) for i in range(0,10,1)]

条件式と内法表記でもちゃんと使えます。

[[i,"even"] if i%2 else [i,"odd"]  for i in range(0,10,1)]

返り値の個数を可変にもできますが、処理がめんどくさくなるので、避けたほうがいいと思います。

[[i,"even"] if i%2 else ["odd"]  for i in range(0,10,1)]

リスト内法表記は以下の記事が非常に参考になります。
上記の内容も「二次元リストを作る」に書いてありましたが、実装したい動作イメージと検索ワードが異なっており、見逃しておりました。
リスト内包表記の活用と悪用 - Qiita

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0