0

確立された辞書のキーに値を追加する for ループを作成しようとしています。ただし、すべての値ではなく、最後の値を取得し続けます。私が間違っていることは何ですか?

私の現在の辞書は次のようになります。

growth_dict = dict.fromkeys(conc[1:9], '')

growth_dict = {'100 ug/ml': '', '12.5 ug/ml': '', '50 ug/ml': '', 
    '0 ug/ml': '', '6.25 ug/ml': '', '25 ug/ml': '', '3.125 ug/ml': '', 
    '1.5625 ug/ml': ''}

cols_list = numpy.loadtxt(fn, skiprows=1, usecols=range(1,9), unpack=True)

numer = (0.301)*960 #numerator

for i in cols_list:

    N = i[-1]
    No = i[0]
    denom = (math.log(N/No)) #denominator
    g = numer/denom

プログラムを実行して「growth_dict」と入力すると、最後の値のみをキーとして辞書が返されます。

growth_dict = {'100 ug/ml': 131.78785283808514, '12.5 ug/ml': 131.78785283808514, 
    '50 ug/ml': 131.78785283808514, '0 ug/ml': 131.78785283808514, 
    '6.25 ug/ml': 131.78785283808514, '25 ug/ml': 131.78785283808514, 
    '3.125 ug/ml': 131.78785283808514, '1.5625 ug/ml': 131.78785283808514}
4

2 に答える 2

1

conc[j]これを行うたびに、辞書エントリの値を上書きしています。

growth_dict[conc[j]] = g

連続gする各エントリを辞書エントリに追加する場合は、次のようにしてください。

for j in conc:
    # The first time each key is tested, an empty list will be created
    if not instanceof(growth_dict[conc[j]], list):
        growth_dict[conc[j]] = []
    growth_dict[conc[j]].append(g)
于 2012-06-08T23:26:28.693 に答える
1

次のようにして、データをロードする手間を大幅に節約することもできます。

cols_list = numpy.loadtxt(fn, skiprows=1, usecols=range(1,9), unpack=True)
于 2012-06-08T23:29:36.460 に答える