Python:関数から複数の値を返す
これらの値をディクショナリ、タプル、またはリストにバンドルすることにより、複数の値を返すことができます。これらのデータ型を使用すると、複数の同様の値を格納できます。メインプログラムでそれらから個々の値を抽出できます。または、複数の値を渡してカンマで区切ることもできます。
Python関数は複数の値を返すことができます。複数の値を返すには、辞書、Pythonタプル、またはリストのいずれかをメインプログラムに返すことができます。
このガイドでは、これら2つの方法を使用して複数の値をメインプログラムに返す方法について説明します。始めましょう。
Python:複数の値を返す
以下を使用して、Python関数から複数の値を返すことができます:
- 複数の値を含むリスト。
- 複数の値を持つタプル。
- 複数のレコードを持つ辞書。
- コンマで区切られた複数の値。
上記のすべてのデータ型を使用すると、複数の値を格納できます。カンマで区切られた複数の値を返すソリューションは、最も洗練されています。これは、このアプローチによって意図が明確になるためです。つまり、複数の個別の値をメインプログラムに戻すことです。
Pythonのreturnステートメントは、関数からメインプログラムに値を送信します。このステートメントは、1つの値をメインプログラムに返すために最も一般的に使用されます。メインプログラムに複数の値を返すために使用できます。
Python:カンマで複数の値を返す
返す値をコンマで区切ることにより、複数の値を返すことができます。これらの値は、Pythonのreturnステートメントの後に表示されます。
電器店での売り上げを計算するプログラムを作成します。 500ドル以上の売上のみをカウントします。私たちのプログラムは、各販売の平均値も計算します。
参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。
平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。
まず、売上のリストを含むPython配列を定義しましょう:
sales = [59.99, 240.00, 655.25, 75.99]
次に、500ドルを超える売上数と購入の平均値を計算するPython関数を記述します。
def calculate_data(sales): over_limit = 0 for s in sales: if s > 500: over_limit += 1 average_purchase = sum(sales) / len(sales) return over_limit, average_purchase
関数は、forループを使用して、リスト内のすべての販売を繰り返します。セールの価値が500ドルを超える場合、「over_limit」Python変数が1つインクリメントされます。次に、すべての販売の合計値を販売数で割って、購入の平均値を計算します。
関数の最後で、returnステートメントを使用して、「over_limit」と「average_purchase」の値をメインプログラムに返します。
あとは、関数を呼び出して、プログラムが計算したデータをコンソールに表示するだけです。
over_limit, average_purchase = calculate_data(sales) print("{} sales were made over $500. The average purchase was ${}.".format(over_limit, round(average_purchase)))
round()を使用して、平均購入額を小数点以下第2位に四捨五入します。 方法。コードは、計算した値を通知するメッセージを出力します。プログラムを実行してみましょう:
1 sales were made over $500. The average purchase was $258.
私たちのプログラムは、500ドル以上の売り上げと、購入の平均価格を教えてくれます。
このコードが機能するのは、「return」ステートメントが値をタプルに変換し、タプルリストをメインプログラムに返すためです。次に、このタプルを次のコード行の2つの変数に解凍します。
over_limit, average_purchase = calculate_data(sales)
Python:リストまたはタプルで複数の値を返す
リストとタプルの両方で、複数の値を格納できます。これは、それらを使用して複数の値をメインプログラムに返すことができることを意味します。
返す値に何らかの関係がある場合は、リストまたはタプルを使用するのが最適です。ただし、このアプローチを使用して、任意の値のコレクションを返すことができます。
平均購入サイズと500ドルを超える購入数をメインプログラムに戻します。そのためには、前の例を参照して、リストを使用するように少し変更します。
def calculate_data(sales): over_limit = 0 for s in sales: if s > 500: over_limit += 1 average_purchase = sum(sales) / len(sales) return [over_limit, average_purchase]
値を1つのリストに分割しました。私たちのリストには、それぞれ500ドルを超える購入数と平均購入額が含まれています。
タプルデータ構造を返すこともできます。そのためには、角かっこを中かっこに置き換えます。考慮すべき大きな要因は、タプルに重複する値を含めることができないことです。メインプログラムに渡す2つの値が等しくなる可能性がある場合は、タプルの使用を避けてください。
メインプログラムでこれらの値にアクセスするには、インデックスを使用する必要があります:
values = calculate_data(sales) print("{} sales were made over $500. The average purchase was ${}.".format(values[0], round(values[1])))
values [0]構文を使用して、calculate_data()関数が返すリストの最初の値にアクセスします。これは、関数の「over_limit」の値に対応します。 values [1]構文を使用して、平均購入額にアクセスします。
コードは次のようになります:
1 sales were made over $500. The average purchase was $258.
コードは前の例と同じように機能しますが、今回はリストを使用してコード内の値を区切りました。
Python:辞書で複数の値を返す
辞書を使用して、関数から複数の値を返すことができます。
最後の例では、メインプログラムに2つの値のみを返しました。これにより、アンパック構文(値を複数の変数に「アンパック」する)を使用すると便利になりました。
より多くの値を処理している場合は、各値をラベルに関連付けるディクショナリを返す方が簡単な場合があります。辞書を使用してメインプログラムに複数の値を返すように、最後の関数を修正しましょう。
def calculate_data(sales): over_limit = 0 for s in sales: if s > 500: over_limit += 1 average_purchase = sum(sales) / len(sales) return { "limit": over_limit, "average": average_purchase }
この関数は、2つのキーと値を持つ辞書を返します。キー「limit」および「average」を使用して、各値を一意に識別できます。次に、この新しい構文をサポートするために、関数呼び出しとprintステートメントを修正する必要があります。
values = calculate_data(sales) print("{} sales were made over $500. The average purchase was ${}.".format(values["limit"], round(values["average"])))
辞書をメインプログラムに戻します。この辞書を変数「values」に割り当てます。次に、インデックスを使用して「limit」と「average」の値を取得します。
プログラムを実行してみましょう:
1 sales were made over $500. The average purchase was $258.
私たちのプログラムは以前と同じ応答を返します。これは、メインプログラムに値を返す方法が変更されたためです。計算ロジックは同じままです。
結論
ディクショナリ、タプル、またはリストのいずれかを使用して、関数から複数の値を返すことができます。これらのデータ型はすべて、複数の値を格納できます。複数の値を返すための特定の構文はありませんが、これらのメソッドは適切な代替として機能します。
小さな値のセットを使用している場合は、コンマ区切りの方法の方が簡潔で理解しやすくなります。関数からより広い範囲の値を返すとします。辞書を使用して、複数の値をメインプログラムに送り返すことができます。
Pythonプログラミング言語を学ぶ旅を加速したいですか? Pythonのトップコースとオンライン学習リソースに関するアドバイスについては、Pythonの学習方法ガイドをご覧ください。
-
Python関数からjsonオブジェクトを返す方法は?
指定されたPythonディクショナリを使用して、次のようにpython関数からjsonオブジェクトを返します。 例 import json a = {'name':'Sarah', 'age': 24, 'isEmployed': True } # a python dictionary def retjson(): python2json = json.dumps(a) print python2json retjson() 出力 {"age": 24, "isEmployed": tru
-
Python関数はどのようにして関数を返すことができますか?
Pythonはファーストクラスの関数をサポートしています。実際、Pythonのすべての関数はファーストクラスの関数です。 Pythonは関数から関数を返し、リストなどのコレクションに関数を格納し、通常は変数やオブジェクトと同じように扱います。 他の関数で関数を定義し、関数を返すことはすべて可能です。 指定されたコードは次のように作り直されています。関数内で関数を定義し、これらを返します。 例 def f2(c, d): return c, d def f1(a, b): c = a + 1 d = b +