技術雑食系車好きの備忘録

今やってるもの:python・サーバ構築・blender

<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
成功

大きい数にも平然と対処する、シビれる言語ですね