空白で区切られた整数値の行を読み込み、その上で簡単な統計計算を実行しようとしています。 https://docs.python.org/3/library/statistics.htmlstatistics.mean()を呼び出すときにリストが消費される
ここアクションでそれを次のとおりです:
import sys
import statistics
values = map(int, sys.stdin.readline().split())
print(statistics.mean(values))
print(statistics.median(values))
print(statistics.mode(values))
私はここに文書化Pythonの標準ライブラリから
statistics
モジュールを使用することにしました
64630 11735 14216
:とても似
入力の例ラインが見えます
実行すると、stderr
から次の出力が得られます。
Traceback (most recent call last):
File "file.py", line 7, in <module>
print(statistics.median(values))
File "/usr/lib/python3.4/statistics.py", line 313, in median
raise StatisticsError("no median for empty data")
statistics.StatisticsError: no median for empty data
そしてstatistics.median()
への呼び出しは、それらを使用することができます前に、statistics.mean()
への最初の呼び出しがvalues
リスト内のすべての要素を消費しているようです。 (I stdout
から最初print
のステートメントからの出力を参照してください、そうstatistics.mean()
への呼び出しがうまく働いた。)
入力処理はすべての問題を持っていないようです。
stdout
から次を出力
import sys
import statistics
values = map(int, sys.stdin.readline().split())
for v in values:
print(v)
:私は期待どおりに動作、次のコードを持っている標準ライブラリのマニュアルの
64630
11735
14216
何もこれらの関数は、渡されたパラメータを消費言及していないこれらの標準的な機能のそれぞれを。値を返すだけでリスト自体は変更しないでください。
リストには一度だけ読み込みまたは反復することができるPython固有のものがありますか?それとも、私が試したコンパイラの両方で奇妙なことがありますか?
'map()'は、私が想定していたのと同じ型を渡す代わりに実際にはイテレータを返します。 ありがとうございました! – bmedev