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 回答