python - 获取具有特定上一个和下一个值的所有值
问题描述
我有以下包含元组的列表:
ov=[(0,), (1,), (0,), (0,), (0,), (0,), (1,), (1,), (1,), (1,), (1,), (0,), (1,), (1,), (1,), (0,), (1,), (1,), (1,), (1,), (1,), (None,)]
我现在想要1
将之前的所有值0
存储在一个单独的列表中。
每次存储的最后一个值应该是0
或者如果存在None
不应该存储的值。
所以我想要一个结果:
result =[1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1]
我已经有了以下功能:
def previous_and_next(something):
prevs, items, nexts = tee(something, 3)
prevs = chain(["NONE"], prevs)
nexts = chain(islice(nexts, 1, None), ["NONE"])
return zip(prevs, items, nexts)
并遵循 for 循环:
for previous, item, nxt in previous_and_next(ov):
if item[0]==1 and previous[0]==0 and nxt[0]==1:
print("This is the start value of my wanted values")
print(previous)
print(item)
print(nxt)
输出:
This is the start value of my wanted values
(0,)
(1,)
(1,)
This is the start value of my wanted values
(0,)
(1,)
(1,)
This is the start value of my wanted values
(0,)
(1,)
(1,)
有人可以帮我改变这个循环,让它返回预期的结果吗?
解决方案
my_result = []
is_zero = None
for o in ov:
if o[0]==1:
my_result.append(o[0])
is_zero = False
elif o[0]==0 and is_zero == False:
my_result.append(o[0])
is_zero=True
print(my_result)
推荐阅读
- cookiecutter - 千篇一律:为提示指定变量的最简单方法是什么
- sql - 异常:[IBM][CLI Driver][DB2/LINUXX8664] SQL0104N 意外令牌错误
- oracle - 使用 URL 分配 oracle PLSQL 变量
- email - 所有 Heroku 评论应用的 MX 记录
- javascript - Vue可拖动不更新索引
- git - 如何在 git 中列出所有远程现有分支?
- scala - 无法在没有空代码块的情况下实例化没有方法的特征
- javascript - 使用 JWT 对 json-server 进行授权
- php - 无法禁用 PHP X-Powered-By 标头
- visual-studio-code - 卡住:[Remote - SSH 0.49.0] Setting up SSH Host DEV: (details) Initializing VS Code