【发布时间】:2021-09-29 15:48:00
【问题描述】:
我想通过列表理解将值从单个列表添加到多个列表中。特征列表中有 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': []
我查看了其他帖子并尝试做与他们类似的事情,但我的答案是关闭的。我可以做这样的事情,但它看起来很丑:
mean_list.append[features[0]]
std_list.append[features[1]]
max_list.append[features[2]]
min_list.append[features[3]]
【问题讨论】:
-
您使用 listcomps 纯粹是为了产生副作用,这是不好的做法(因为它会导致这样的事情)。
-
请缩进代码并详细说明问题
-
所以我应该坚持我更“丑陋”的方法?
-
请参阅我的回答,了解我认为您应该做什么。不过,一般来说,listcomps 是用于函数式的东西,你正在改变数据然后返回它,而不是为了副作用。 (正如您所注意到的,您想出的 listcomp 不起作用)
-
太好了,感谢您的反馈
标签: python list list-comprehension