【发布时间】:2018-01-12 01:43:33
【问题描述】:
我想将列表从喜欢冲动更改为喜欢锯齿。 请告诉我如何以有效的方式编写它。
# input list
list_a = [0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0]
# output list
list_b = [0.0, 0.0, 1.0, 0.9, 0.8, 0.7, 1.0, 0.9, 0.8, 1.0, 0.9]
普通代码
我想知道如何写下代码的有效方式。 就像一个列表理解。
list_b = []
for i, val in enumerate(list_a):
if i == 0:
list_b.append(val)
elif val == 1:
list_b.append(float(val))
elif list_b[-1] >= 0.1:
list_b.append(list_b[-1] - 0.1)
else:
# list_b is not subtract under zero
list_b.append(0.0)
【问题讨论】:
-
“喜欢冲动”和“喜欢锯齿”是什么意思?
-
Tbh,我喜欢你的方法。我会从
list_b = [list_a[0]] for val in list_a[1:]: if val == 1:开始并使用round(list_b[-1] - 0.1, 1)来消除浮点数的不准确性,否则我不会有太大的改变。