python - 考虑到 takewhile (itertools) 的最后一次迭代

标签 python csv python-itertools

我需要迭代 .csv,直到名为“seguir”的 bool 值变为 False。 问题是 takewhile 丢弃了最后一次迭代和值,而我需要它,因为该行中 .csv 的值与我的问题相关。

for line in itertools.takewhile(lambda x: seguir, lectura):
    data2 = strintodate(line[1])
    data4 = strintodate(line[2])
    if data2 < data4:
        seguir = False
    escritura.writerow([programa + 1, data2, data2, line[4]])

有什么建议吗? 谢谢

最佳答案

您可以使用 for 循环,其条件是在写入行后 break:

for line in lectura:
    data3 = strintodate(line[1])
    data4 = strintodate(line[2])
    escritura.writerow([programa + 1, data2, data2, line[4]])
    if data2 < data4:
        break

关于python - 考虑到 takewhile (itertools) 的最后一次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55402330/

相关文章:

python - 基于另一个列过滤器在列中进行空/重复检查

python - 如何使用 python 多线程并行化另一个模块中的函数而不需要对其进行酸洗?

python - Azure Durable Function 可以运行多长时间?

python - 如何比较两个不相等的列表并将匹配元素值追加回第一个列表

python - 使用推导式拆分并展平字符串和 None 值的列表

python - send_keys 在 Django 测试中不起作用

java - Java while 循环中如何将数组合并为一个数组

iphone - 在 UIPicker 中显示 CSV 文件的内容

python / Pandas : how to read a csv in cp1252 with a first row to delete?

python - Itertools 与嵌套循环性能对比