[英]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.