python - 奇数开始时如何停止循环?
问题描述
我怎样才能从中得到[11, 12, 15]
在[4, 8, 10, 11, 12, 15]
这段代码中,当列表中的奇数元素开始时循环应该停止并打印列表的其余部分。我写了它,但没有得到实际值:
data = [4, 8, 10, 11, 12, 15]
emp = []
for i in data:
if i%2 ==0:
emp.append(i)
while i%2 !=0:
break
print([x for x in data if x not in emp])
解决方案
我建议使用itertools.dropwhile
r = list(itertools.dropwhile(lambda x: x % 2 == 0, data))
结果是:
[11, 12, 15]
只要 lambda 返回,它就会从您的列表中删除True
。
有关更多信息,请参阅itertools.dropwhile 文档
推荐阅读
- python - Python从字符串中删除乱码和所有内容
- sql - 计算每个代理 id、agentstatusid、日期的持续时间 ----- sql server 2014
- transactions - Hyperledger Fabric:重复值
- python - 在gca下交换python(jupyter notebook)中的轴值
- typescript - 如何在 TypeScript 中组合两个联合类型以创建第三种类型,类似于字符串插值?
- angular - 在单元格值更改事件上禁用 Ag 网格中的编辑
- ios - 在 ios Objective-c 中的 mapview 上添加多个带有多个图像的注释?
- c++ - Assert 在 Visual Studio 中被视为 C 风格转换
- sas - IFC 函数在 IN 运算符中引发错误
- python - Visual Studio 代码(在终端中运行 Python 文件不起作用)