0

数値のリスト(str形式)をヒストグラム化しようとすると、たとえば、すべての数値が分割されます

a = ['1','1.5','2.5']

ヒストグラム関数を実行した後、辞書は次のようになります

{'1': 2, '2': 1, '5': 2, '.': 2}

私のヒストグラム関数は

def histogram(a):
    d = dict()
    for c in a:
        d[c] = d.get(c,0)+1

    return d

私は学校向けのプロジェクトを行っていて、すべてをコーディングしていますが、モード部分を実行するときに、具体的に int ではない数値を使用すると、上記の戻り値が返されます文字列を受け入れるようにこれを調整/変更するにはどうすればよいですかWindows 7x64 で正確に入力された Python 2.7

4

4 に答える 4

1

ヒストグラム関数に渡す前に、各文字列要素を float に変換できます。

a = ['1','1.5','2.5']

a = [float(i) for i in a]

def histogram(a):
    d = dict()
    for c in a:
        d[c] = d.get(c,0)+1

    return d

print histogram(a)
于 2013-04-04T08:29:48.760 に答える
0

次のようなものを使用できます。

>>> a = ['1','1.5','2.5']
>>> dict.fromkeys(a, 0)
{'1': 0, '1.5': 0, '2.5': 0}

キーを繰り返し処理して、対応する値を設定できるようになりました。

作業を減らすために、次の辞書内包表記を使用しました。

>>> {key: float(key)+1 for key in a}
{'1': 2.0, '1.5': 2.5, '2.5': 3.5}

楽しい :)

于 2013-04-04T10:10:09.637 に答える