【发布时间】:2020-05-26 08:58:28
【问题描述】:
我有一个列表decider = [1,1,1,1,1,0,0,0,1,1,1,0,0,0,0]。在这个列表中,我想在 1 前面打印 +150,在 0 前面打印 -150。但条件是,您只能连续输入 +150 或 -150 最多 4 次,之后您必须输入 0如果仍然在列表中,您将得到 0 或 1。
预期输出:
decider result
1 150
1 150
1 150
1 150
1 0
0 -150
0 -150
0 -150
1 150
1 150
1 150
0 -150
0 -150
0 -150
0 -150
我的方法:
test = [1,1,1,0,0,0,0,1,1,1,1]
Charge_counter = 0
Discharge_counter = 0
charge = []
discharge = []
for i in test:
if i ==1:
Charge_counter += 1
if Charge_counter <=4:
charge.append(150)
else:
charge.append(0)
else:
Discharge_counter += 1
if Discharge_counter <= 4:
discharge.append(-150)
else:
discharge.append(0)
print(charge)
print(discharge)
【问题讨论】:
-
到目前为止你编码了什么?
-
看看
itertools.groupby -
对不起,我忘了在那里发布我的代码。现在我编辑了我的问题。
标签: python arrays python-3.x list