5

リスト内包表記を使用して、一部のリストに追加する for ループを記述しないようにしたいと考えていました。しかし、複数の値を返す関数で機能するでしょうか? この(単純化された例)コードが機能することを期待していました...

def calc(i):
    a = i * 2
    b = i ** 2
    return a, b

steps = [1,2,3,4,5]

ay, be = [calc(s) for s in steps]

...しかし、そうではありません:(

各リストへの for ループの追加は次のように機能します。

def calc(i):
    a = i * 2
    b = i ** 2
    return a, b

steps = [1,2,3,4,5]

ay, be = [],[]

for s in steps:
    a, b = calc(s)
    ay.append(a)
    be.append(b)

より良い方法はありますか、それともこれに固執しますか?

4

3 に答える 3