<Python>dictionary型の基本メモ・恒河沙より大きい数字を使えるのか?
★JavaのMap型に近いものをイメージしてもらえればヨシ
メモ>記法
a = {
"a":100,
"b":50,
"c":300000000000000000000000000000000000000000000000000000000(3恒河沙)
}
メモ>並び順操作
①書かれたままに出力した場合
a = { "a" : 100, "b" : 50, "c" : 300000000000000000000000000000000000000000000000000000000 }
for i in a:
print(i)
↓
a
b
c
と出力(Key項目値の昇順を出力)
②sorted()関数を使ってみる
a = { "a" : 100, "b" : 50, "c" : 300000000000000000000000000000000000000000000000000000000 }
print(sorted(a))
↓
a
b
c
と出力(Key項目値の昇順を出力)
③sorted()関数を使って並び替えてみる
a = { "a" : 100, "b" : 50, "c" : 300000000000000000000000000000000000000000000000000000000 }
print(sorted(a, key = a.get))
↓
['b', 'a', 'c']
と出力(値の昇順でkey値を出力)
④sorted()関数を使って、値で並び替えてみる(降順)
a = { "a" : 100, "b" : 50, "c" : 300000000000000000000000000000000000000000000000000000000 }
print(sorted(a, key = a.get, reverse = True))
↓
['c', 'a', 'b']
と出力(値の降順でkey値を出力)
実験>どこまでの桁数を使える?
a = { "a" : 100, "b" : 50, "c" : ***************************************** }
for i in a:
print(a.get(i))
この「**************」の部分に莫大な数字を入力して、どこまで耐えられるか(print()で出力できるか)を実験。
CPの性能に左右されるとも思いますが、まあ一般的なご家庭にある貧弱PCだと認識してもらえれば大丈夫です。
早速ですが、実験結果はこちら。
※恒河沙は成功したので一~極の結果は省略しますが、大きい数トリビアとして記載だけ
単位 | 桁数 | 数値 | 結果 |
---|---|---|---|
一~兆 | 1~10の12乗 | 省略 | 省略 |
京 | 10の16乗 | 省略 | 省略 |
垓 | 10の20乗 | 省略 | 省略 |
じょ (のぎへんに予) |
10の24乗 | 省略 | 省略 |
穣 | 10の28乗 | 省略 | 省略 |
溝 | 10の32乗 | 省略 | 省略 |
澗 | 10の36乗 | 省略 | 省略 |
正 | 10の40乗 | 省略 | 省略 |
載 | 10の44乗 | 省略 | 省略 |
極 | 10の48乗 | 省略 | 省略 |
恒河沙 | 10の52乗 | 1000000000000000000000000000000000000000 0000000000000 |
成功 |
阿僧祇 | 10の56乗 | 1000000000000000000000000000000000000000 00000000000000000 |
成功 |
那由他 | 10の60乗 | 1000000000000000000000000000000000000000 000000000000000000000 |
成功 |
不可思議 | 10の64乗 | 1000000000000000000000000000000000000000 0000000000000000000000000 |
成功 |
無量大数 | 10の68乗 | 1000000000000000000000000000000000000000 00000000000000000000000000000 |
成功 |
大きい数にも平然と対処する、シビれる言語ですね