【问题标题】:How do I modify the values of an iterator in Python?如何在 Python 中修改迭代器的值?
【发布时间】:2022-01-21 22:43:20
【问题描述】:

作为一个附带项目,我正在制作一个基本的 HTML 解析器。 HTML 以字符串形式出现,我为它创建了一个迭代器。我需要在某些点删除空白组,例如如果字符是空格,我想消耗它,删除它,然后一个接一个地前进,直到我碰到一个非空格字符,函数将停止。

迭代器设置:

from more_itertools import peekable
chars = peekable("</        html    >")

例如:

"</        html    >

...变成:

"</html    >"

【问题讨论】:

  • @jonrsharpe 刚刚更新了帖子以获得更多说明,我忘了提到我希望它从当前位置删除空格,直到它到达一个非空格字符,它会完全停止。跨度>
  • 没有从迭代器中删除字符的通用方法,尽管在这里,您可以只使用next(chars),然后也许使用continue?或者老实说,只需使用filter
  • docs.python.org/3/library/itertools.html#itertools.dropwhile 那么呢?也许您可以提供一些实际的上下文,而不是向我们保证这是有道理的。
  • 我的错,我是新手。我将根据上下文更新帖子。

标签: python iterator itertools


【解决方案1】:

我认为filter 函数正是您要寻找的。​​p>

一个例子:

import string
text = "</        html    >"

for c in filter(lambda x: x not in string.whitespace, text):
    print(c, end="")

输出为&lt;/html&gt;

【讨论】:

  • 差不多了,但我想单独删除连接的空白组。因此,如果迭代器指向斜线后的空白,它将删除空白,直到它碰到 H,它停止并且在再次调用之前不再删除任何空白。
猜你喜欢
  • 2023-01-31
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 2016-08-07
  • 2012-03-13
相关资源
最近更新 更多