4

範囲 (15,20,1) から派生した数値のリストを取得する必要があります。各数値は 15*x*100 です。

X   Y
15  100
16  93,75
17  88,2352941176
18  83,3333333333
19  78,9473684211
20  75

結果は、小数点以下 2 桁の y の配列になります。

私はpythonで試してみましたが、整数のみを処理できることがわかりました。それから私はnumpyを試しましたが、まだそこに到達していません. 私はナブなので、愚かな質問で申し訳ありませんが、2時間試した後、質問を投稿することにしました.

ベスト、メイス

4

2 に答える 2

3

次のようなものが必要ですか:

ylist = [float(x)*15*100 for x in range(15,21)]

?

これは以下を返します:

[22500.0, 24000.0, 25500.0, 27000.0, 28500.0, 30000.0]

15*x*100数式がこれらの値を生成しないため、Y 列が何を意味するのかよくわかりません。

あなたが実際に意味するならx*100/15、それは次のようになります:

ylist = [15/float(x)*100 for x in range(15,21)]

またはさらに簡単です:

ylist = [15.0/x*100.0 for x in range(15,21)]

計算内のすべての値が type のint場合、python はintas result を作成します。一方、それらのいずれかがfloatまたはの場合double、それが結果の型になります。

この強制は、 を明示的に使用することもfloat(x)、単に定数の 1 つを のように浮動小数点値として表すこともできます100.0

必要な小数点以下2桁については、値をどうする必要があるかによって異なります。

1 つの方法はround、次のように小数点以下 2 桁まで使用することです。

ylist = [round(15.0/x*100.0, 2) for x in range(15,21)]

小数点以下 2 桁が常に必要な場合は、おそらく文字列の書式設定を使用することになるでしょう。それについては @mgilson の返信を確認してください。

于 2013-04-08T14:33:31.800 に答える
1

おそらくあなたは次のようなものを探しています:

>>> print [float(15)/x*100 for x in range(15,21)]
[100.0, 93.75, 88.23529411764706, 83.33333333333334, 78.94736842105263, 75.0]

これでは、小数点以下 2 桁までは表示されません。そのためには、roundまたは文字列の書式設定が必要です...(事後の数字で何をしたいのか正確にはわからないので、ここで推奨するのは難しいです)。文字列フォーマットの例を次に示します。

>>> print ['{0:.2f}'.format(float(15)/x*100) for x in range(15,21)]
['100.00', '93.75', '88.24', '83.33', '78.95', '75.00']
于 2013-04-08T14:36:17.527 に答える