我有以下输入内容:
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
15. 16. 17. 18. 19.]
预期输出:
[ 0. 0. 0. 0. 0. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
0. 0. 0. 0. 0.]
当前代码:
from numpy import linspace
input_list = linspace(0,20,20, endpoint = False)
input_list[:5] = 0
input_list[15:] = 0
print(input_list)
我想知道是否还有更优雅/蟒蛇的方式?
答案 0 :(得分:2)
我的意思是,如果您只想要该范围,则可以执行此操作。
list(range(5,15))
或者如果您想忽略前几个:
[0]*5+input[5:15]+[0]*5
或者是条件性
[x if 4<x<15 else 0 for x in input ]
答案 1 :(得分:0)
尝试包含列表:
l1 = [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
15. 16. 17. 18. 19.]
l2 = [x for x in l1 if x in range(5, 15) else 0.]