《09》データ構造(1)辞書〈Python 2.x 版〉
実録:はじめてのプログラミング《記事一覧》
《09》データ構造(1)辞書
《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
2009年1月26日(月)
関連記事
今日の進捗
Comment | |
---|---|
本人:野中 | 6章を読み飛ばして7章から再開しました。 |
担当:伊藤 | ↑と言いつつ、すでにfrom...importなどを利用しています。課題をこなした後でもかまわないので、前に戻って読み返すと理解が深まるでしょう。 |
ヒストグラム課題(1)辞書
《step 1》乱数を生成して、その出現頻度を求めます。
ヒストグラム課題を作成しながら、データ構造について学びます。
>>> from random import *
>>> help(randint)
Help on method randint in module random:
randint(self, a, b) method of random.Random instance
Return random integer in range [a, b], including both end points.
乱数を利用するには、モジュール random を取り込みます。メソッド randint を利用すると、指定した範囲の乱数(整数)が得られます。すると、
>>> [randint(0,99) for _ in range(10)]
[72, 64, 34, 93, 47, 15, 3, 87, 18, 39]
>>> [randint(0,99) for _ in range(10)]
[52, 20, 36, 12, 35, 81, 62, 4, 19, 75]
それぞれに、0 から 99 までの乱数が10個ずつ得られます。
def ex(): from random import * histo = {} for _ in range(100): n = randint(0, 9) histo[n] = histo.get(n, 0) + 1 s = 0 for k, v in histo.items(): s += v print "%d[%2d]%s"%(k, v, scale(v)) print s
メソッド dict.get を利用すると、指定したキーに対応する値が得られます。第1引数に指定したキーが見つからないと、第2引数が値として得られます。
そこで、メソッド randint を利用して、乱数(0 から 9 まで)を生成するとともに、その出現頻度を求めます。すると、次の結果から、
>>> ex()
0[14]....+....1....
1[11]....+....1.
2[14]....+....1....
3[ 8]....+...
4[13]....+....1...
5[11]....+....1.
6[ 5]....+
7[10]....+....1
8[ 8]....+...
9[ 6]....+.
100
乱数 3 を 8 個だけ生成するとともに、計 100 個の乱数を生成したのが分かります。
Tips
前の課題で作成した scale を再利用しています。すると、乱数の出現頻度を視覚的に確認できるので便利です。《うさぎ》
Last updated♪09/03/06