私はPython 2.7で次のループを持っています。Pythonは、多変数関数出力のためにリスト内包を持つループをネストしました。
pressure = []; cycle_flow = []; gauge_val = []
for element in readout_list:
if element.endswith('.dat'):
v1_2_3 = extract_sensor_values(element)
pressure.append(v1_2_3[0])
cycle_flow.append(v1_2_3[1])
gauge_val.append(v1_2_3[2])
私はこれをリスト内包として1行に書いています。機能extract_sensor()
は、1つの変数のみを返された場合、私は簡単に、このリストの内包表記を使用することができます。
v1_2_3=[extract_sensor_values(element) for element in readout_list if element.endswith('.dat')]
はしかし、私は、リストの内包表記を使用して、関数から同時に三つの変数を取得する方法を確認していません。これは複数の行を使用するとシンプルなように見えますが、1行に置いてみるとうまくいきません。
複数の関数値をリスト内包に戻すことはできますか?
また、「コードの行数が少ない」とは、盲目的に目的とする指標ではありません。言語の表現力を使って複雑なものを少ない行で書くことができることは時々ありますが、人々が1行であまりにも多く詰まって悲しみに陥ることはほとんどありません。 – mgilson
私は同意します。これがどのようになるかを以下に見ていきます。この特定のケースでは、簡単に読みにくくすることなく、実際には1ライナーが可能ではない可能性があります。 –