简体   繁体   English

如何将 append 值添加到 Python 字典中的列表

[英]How to append values to a list in Python dictionary

def get_probe_pts(surf_data, probe_loc):
    rescale_x = surf_data[:, 0] - np.min(surf_data[:, 0])
    # surf_data = data
    surf_data[:, 0] = rescale_x / (5 * 101.6)

    prom_loc_min = probe_loc - (surf_data[1, 0] - surf_data[0, 0]) * 0.5
    prom_loc_max = probe_loc + (surf_data[1, 0] - surf_data[0, 0]) * 0.5

    data_probe = surf_data[np.logical_and(surf_data[:, 0] > prom_loc_min, surf_data[:, 0] < prom_loc_max)]

    return np.average(data_probe, axis=0)
probes = {'k20': 0.05, 'k21': 0.15, 'k22': 0.25, 'k23': 0.35, 'k24': 0.45, 'k25': 0.55, 'k26': 0.65, 'k27': 0.75,
          'k28': 0.85, 'k29': 0.95}

for i in range(str_idx, end_idx):
    data = np.loadtxt('./cavity_flr' + str(i) + '.csv', usecols=(0, 1, 3, 7))
    for key in probes:
        probe_data.setdefault(key, []).append(get_probe_pts(data, probes[key]))

Only for the k20 key, values are appended properly.仅对于 k20 键,值被正确附加。 For the rest of the keys, I get nan.对于键的 rest,我得到了 nan。 But if I loop for each key separately as shown below, it works fine.但是,如果我如下所示分别循环每个键,它就可以正常工作。

 for i in range(str_idx, end_idx):
     data = np.loadtxt('./cavity_flr' + str(i) + '.csv', usecols=(0, 1, 3, 7))
     probe_data['k20'].append(get_probe_pts(data, probes['k20']))

 for i in range(str_idx, end_idx):
     data = np.loadtxt('./cavity_flr' + str(i) + '.csv', usecols=(0, 1, 3, 7))
     probe_data['k21'].append(get_probe_pts(data, probes['k21']))

You can try the "update" method instead.您可以尝试使用“更新”方法。 Example: append a key="k50" and value = 0.65 We do: probes.update("k50": 0.65)示例:append a key="k50" and value = 0.65 我们这样做:probes.update("k50": 0.65)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM