リストでの数値の操作

完了

ここまでは、リスト内で惑星名を使用してきました。 数値など、他のデータ型の操作について知りたいとお考えではないでしょうか。

他の惑星の重力の強弱は、惑星の質量またはサイズによって決まることをご存じでしたか。 多くの場合、重力は G で測定されます。地球の重力は 1 で、他の惑星は地球との比較で測定されます。

月の重力は 0.166 G です。これが、月面で宇宙飛行士が高くジャンプできる理由です。 海王星の重力は 1.12 G であり、ジャンプはより困難です。 海王星の上での 2 メートルを超えるジャンプには、優れた選手でさえかなり苦労します。

Neptune as seen from Voyager 2 from 4.4 million miles, image credit NASA.

リストに数値を格納する

小数部を含む数値を Python に格納するには、float 型を使用します。 float を作成するには、小数点以下を含む数値を入力し、それを変数に割り当てます。

gravity_on_earth = 1.0
gravity_on_the_moon = 0.166

次のコードでは、太陽系内の 8 つの惑星すべての重力を G で示すリストを作成しています。

gravity_on_planets = [0.378, 0.907, 1, 0.377, 2.36, 0.916, 0.889, 1.12]

このリストでは、gravity_on_planets[0] が水星の重力 (0.378 G)、gravity_on_planets[1] が金星の重力 (0.907 G) であり、それ以降も同じです。

地球上では、ダブルデッカー バスの重量は 124,054 ニュートン (N) です。 重力が 0.378 G の水星では、同じバスの重量は 124,054 ニュートンに 0.378 を掛けた値です。 Python では、2 つの値を乗算するために、* 記号を使用します。

次の例では、リストから値を取得して、さまざまな惑星上でのダブルデッカー バスの重量を算出できています。

gravity_on_planets = [0.378, 0.907, 1, 0.377, 2.36, 0.916, 0.889, 1.12]
bus_weight = 124054 # in Newtons, on Earth

print("On Earth, a double-decker bus weighs", bus_weight, "N")
print("On Mercury, a double-decker bus weighs", bus_weight * gravity_on_planets[0], "N")
On Earth, a double-decker bus weighs 124054 N
On Mercury, a double-decker bus weighs 46892.4 N

リストで min() および max() を使用する

Python には、リスト内の最大数と最小数を計算するための組み込み関数が用意されています。 max() 関数は、最大値を返し、min() は最小値を返します。 そのため、min(gravity_on_planets)gravity_on_planets リスト内の最小値 (0.377 (火星)) を返します。

次のコードでは、これらの関数を使用して、太陽系における重量の最小値と最大値を計算しています。

gravity_on_planets = [0.378, 0.907, 1, 0.377, 2.36, 0.916, 0.889, 1.12]
bus_weight = 124054 # in Newtons, on Earth

print("On Earth, a double-decker bus weighs", bus_weight, "N")
print("The lightest a bus would be in the solar system is", bus_weight * min(gravity_on_planets), "N")
print("The heaviest a bus would be in the solar system is", bus_weight * max(gravity_on_planets), "N")
On Earth, a double-decker bus weighs 124054 N
The lightest a bus would be in the solar system is 46768.35 N
The heaviest a bus would be in the solar system is 292767.44 N