私は3つの配列、a1、a2、a3を持っています
3つとも一度に戻したいです。
私は持っている
return a1, a2, a3
しかし、それらはすべて同じ行に返されます。新しい行にそれぞれを返す方法を考えていました
私は3つの配列、a1、a2、a3を持っています
3つとも一度に戻したいです。
私は持っている
return a1, a2, a3
しかし、それらはすべて同じ行に返されます。新しい行にそれぞれを返す方法を考えていました
こんな感じですか?
>>> def f():
... a1 = [1, 2, 3]
... a2 = [4, 5, 6]
... a3 = [7, 8, 9]
... return a1, a2, a3
...
>>> f()
([1, 2, 3], [4, 5, 6], [7, 8, 9])
このように戻り値をアンパックできます
>>> b1, b2, b3 = f()
>>> b1
[1, 2, 3]
>>> b2
[4, 5, 6]
>>> b3
[7, 8, 9]
または、このように3行で印刷します
>>> print "\n".join(str(x) for x in f())
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
メソッドから戻ることができるのは 1 回だけです。ただし、別の行でデータにアクセスすることはできます。
def dosomething():
...
return a1, a2, a3
myTuple = dosomething()
first = myTuple[0]
second = myTuple[1]
third = myTuple [2]
あなたはできるように求めていますか
return a1
return a2
return a3
それ以外の
return a1, a2, a3
???
もしそうなら、申し訳ありませんが、それはできません。を使用するreturn a1, a2, a3
と、実際には 1 つのもの、つまり 3 つのリストのタプルが返されます。return ステートメントを実行すると、現在のスコープ/コンテキストから呼び出し元に戻ります。これがあなたがやろうとしていることではない場合は、あなたが求めていることをもう少し明確に説明してください.
配列を文字列のように扱っていると思います。配列は、言うまでもなく「行」にまたがっていません。
多分これはあなたが探しているものです。私が正しく理解していれば。
return str(a1)+'\n'+str(a2)+'\n'+str(a3)
a1、a2、a3が同じ長さの場合、これを試すことができます
a1 = [1, 2, 3]
a2 = [4, 5, 6]
a3 = [7, 8, 9]
[ (a1[x],a2[x],a3[x]) for x in range(len(a1)) ]
>>> [(1, 4, 7), (2, 5, 8), (3, 6, 9)]