Python 列表理解:将列表中的值添加到多个单独的列表中
Python list comprehension: add values from a list into multiple separate lists
我想通过列表理解将单个列表中的值添加到多个列表中。特征列表中有 4 个值,它们应该进入 4 个单独的列表。
我的代码:
features = features_time_domain(values, column_name)
feature_lists =[mean_list, std_list, max_list, min_list]
[x.append(y) for x,y in zip(feature_lists, features)]
预期的输出应该是这样的:
'x-axis_mean': [[0.010896254499999957,-0.01702540899999986 ,0.24993333400000006 ,-0.2805791479999999, -0.7675066368], 'x-axis_std': [4.100886585107956,3.8269951001730607, 4.19064980513631, 3.7522815775487643, 3.5302154102620498], 'x-axis_max': [6.2789803,7.668256, 11.604536, 9.384419, 7.5865335], 'x-axis_min': [-8.430995,-8.662541, -7.8861814,7.6546354,-5.175732 ]
但我得到:
'x-axis_mean': [[0.010896254499999957, 4.100886585107956, 6.2789803, -8.430995], [-0.01702540899999986, 3.8269951001730607, 7.668256, -8.662541], [0.24993333400000006, 4.19064980513631, 11.604536, -7.8861814], [-0.7675066368, 3.7522815775487643, 9.384419, -7.6546354], [-0.2805791479999999, 3.5302154102620498, 7.5865335, -5.175732]], 'x-axis_std': [], 'x-axis_max': [], 'x-axis_min': []
我看过其他 post 并尝试做与他们类似的事情,但我的回答是错误的。我可以做这样的事情,但它看起来很难看:
mean_list.append[features[0]]
std_list.append[features[1]]
max_list.append[features[2]]
min_list.append[features[3]]
显然这有效:
mean_list.append[features[0]]
std_list.append[features[1]]
max_list.append[features[2]]
min_list.append[features[3]]
这很简单、明确且清楚,尽管这样会更清楚:
mean, std, mx, mn = features
mean_list.append(mean)
max_list.append(mx)
std_list.append(std)
min_list.append(mn)
但是,如果您的数据在字典中,那么这样的事情就很清楚了:
results = dict(mean=[], std=[], mx=[], mn=[])
for features in get_features():
for i, k in enumerate(results):
results[k].append(features[i])
我想通过列表理解将单个列表中的值添加到多个列表中。特征列表中有 4 个值,它们应该进入 4 个单独的列表。 我的代码:
features = features_time_domain(values, column_name)
feature_lists =[mean_list, std_list, max_list, min_list]
[x.append(y) for x,y in zip(feature_lists, features)]
预期的输出应该是这样的:
'x-axis_mean': [[0.010896254499999957,-0.01702540899999986 ,0.24993333400000006 ,-0.2805791479999999, -0.7675066368], 'x-axis_std': [4.100886585107956,3.8269951001730607, 4.19064980513631, 3.7522815775487643, 3.5302154102620498], 'x-axis_max': [6.2789803,7.668256, 11.604536, 9.384419, 7.5865335], 'x-axis_min': [-8.430995,-8.662541, -7.8861814,7.6546354,-5.175732 ]
但我得到:
'x-axis_mean': [[0.010896254499999957, 4.100886585107956, 6.2789803, -8.430995], [-0.01702540899999986, 3.8269951001730607, 7.668256, -8.662541], [0.24993333400000006, 4.19064980513631, 11.604536, -7.8861814], [-0.7675066368, 3.7522815775487643, 9.384419, -7.6546354], [-0.2805791479999999, 3.5302154102620498, 7.5865335, -5.175732]], 'x-axis_std': [], 'x-axis_max': [], 'x-axis_min': []
我看过其他 post 并尝试做与他们类似的事情,但我的回答是错误的。我可以做这样的事情,但它看起来很难看:
mean_list.append[features[0]]
std_list.append[features[1]]
max_list.append[features[2]]
min_list.append[features[3]]
显然这有效:
mean_list.append[features[0]]
std_list.append[features[1]]
max_list.append[features[2]]
min_list.append[features[3]]
这很简单、明确且清楚,尽管这样会更清楚:
mean, std, mx, mn = features
mean_list.append(mean)
max_list.append(mx)
std_list.append(std)
min_list.append(mn)
但是,如果您的数据在字典中,那么这样的事情就很清楚了:
results = dict(mean=[], std=[], mx=[], mn=[])
for features in get_features():
for i, k in enumerate(results):
results[k].append(features[i])