リストなどでまとめて返してあげましょう。
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