Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで複数の値を返しますか?


Python関数は複数の値を返すことができます。これらの値は、変数に直接格納できます。関数は変数を返すように制限されていません。0、1、2、またはそれ以上の値を返すことができます。

これは、C++やJavaなどの他の多くのプログラミング言語では使用できない複数の値/変数を返すPythonのデフォルトのプロパティです。

関数から複数の値を返す場合は、要件に応じてタプル、リスト、またはディクショナリオブジェクトを返すことができます。

方法1:タプルを使用する

def func(x):
   y0 = x+ 1
   y1 = x * 3
   y2 = y0 ** 3
   return (y0, y1, y2)

ただし、上記のプログラムは、返される値の数が増えるにつれて問題になります。 6つまたは7つの値を返したい場合は?もちろん、私たちはそれらをいじり続けることができますが、どの値がどこにあるかを忘れがちです。また、受け取りたい場所で開梱するのも少し面倒です。

方法2:辞書を使用する

もう1つのより良い解決策は、辞書を使用することです。

def func(x):
   y0 = x+ 1
   y1 = x * 3
   y2 = y0 ** 3
   return {'y0': y0, 'y1': y1, 'y2': y2}

これで、返されたオブジェクトの特定のメンバーを投影できるメカニズムができました。

例-

result[‘y1’]

方法3:クラスを使用する

もう1つのオプションは、特殊な構造を返すことができるクラスを使用することです。

class ReturnValue(obj):
   def __init__(self, y0, y1, y2):
      self.y0 = y0
      self.y1 = y1
      self.y2 = y2

def g(x):
   y0 = x + 1
   y1 = x * 3
   y2 = y0 ** 3
   return ReturnValue (y0, y1, y2)

方法4:リストを使用する

別の方法はリストを使用することです。

def func(x):
   result = [x + 1]
   result.append(x * 3)
   result.append(y0 ** 3)
   return result

方法5:ジェネレーターを使用する

大量の値を返す必要がある場合は、yieldを使用して複数の値を1つずつ返すというこのオプションを選択できます。その場合、シーケンスを使用すると、多くのシステムリソースが消費される可能性があります。

def func(x):
   y0 = x + 1
   yield y0
   yield x * 3
   yield y0 ** 3

関数から複数の値を返すのに最適なメソッドはどれですか?

それはすべてあなたの好みや要件、あなたがより好きな方法に依存します。セットアップ作業が少ないため、–ディクショナリルートを選択できます。または、辞書が表すものを混乱させないようにするために、クラスルートを選択することもできます。または、ジェネレータを選択して、値を1つずつ生成することもできます。


  1. Xごとに複数のY値を持つPython散布図

    Xごとに複数のY値を使用して散布図を作成するために、 xを作成できます。 およびy numpyを使用してデータポイントを圧縮し、それらを一緒に反復して散布図を作成します。 ステップ 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 numpyを使用してランダムなxsおよびysデータポイントを作成します。 xsとysを圧縮します。それらを一緒に繰り返します。 各xで散布図を作成します およびy 値。 図を表示するには、 show()を使用します メソッド。 例 import numpy as np from matplotli

  2. Pythonで複数の値を返すにはどうすればよいですか?

    タプル、リスト、ディクショナリ、またはユーザー定義クラスのオブジェクトの形式で関数から複数の値を返すことができます タプルとして返す >>> def function():       a=10; b=10       return a,b >>> x=function() >>> type(x) <class 'tuple'> >>> x (10, 10) >>> x,y=function() >>&