我的问题是我想在遍历新元素的同时扩展一个包含新元素的列表,并且希望迭代器继续刚才添加的元素。
根据我的理解,ListIterator.add()
会在列表中的当前元素之前而不是之后添加一个元素。是否可以通过其他方式实现这一目标?
Iterator
除了以外,您无法在修改集合时使用进行迭代Iterator.remove()
。
但是,如果使用listIterator()
方法,该方法返回ListIterator
,并对其进行迭代,则您还有更多要修改的选项。从javadoc中获取add()
:
新元素插入到隐式光标之前:…后续调用
previous()
将返回新元素
鉴于此,此代码应该可以将新元素设置为迭代中的下一个元素:
ListIterator<T> i;
i.add(e);
i.previous(); // returns e
i.previous(); // returns element before e, and e will be next
除了列表开始为空时,这将起作用,在这种情况下,将没有先前的元素。如果存在问题,则必须维护某种标志以指示这种情况。
问题内容: 我想避免。我该怎么办? 问题答案: 您可以在迭代本身期间使用支持remove / add方法的。
我正在使用XPath/CSS和Selenium来定位网站上的元素。我想创建一个方法,在这个方法中,我遍历一个定位器列表(XPath/CSS),然后程序选择哪个有效。换句话说,它从定位器1开始-如果定位器存在,它将返回true并存在循环。否则,它将移动到列表中的下一个定位器。一旦用完所有CSS定位器,它就会转到XPath等等。 目前,我正在考虑如下实施: 然后,我计划为每种定位器类型调用此方法(一次
问题内容: 我正在遍历Python中的元素列表,对其进行一些操作,然后在满足特定条件的情况下将其删除。 我应该使用什么来代替?我曾问过类似的问题,但注意到将对所有元素执行部分,因此消除了使用过滤器的解决方案。 问题答案: 你始终可以遍历列表的副本,从而可以自由修改原始列表:
问题内容: 我知道在迭代列表时不允许删除元素,但是在迭代时允许将元素添加到python列表中。这是一个例子: 我已经在我的代码中尝试过了,它似乎可以正常工作,但是我不知道是否是因为我很幸运,将来它会折断吗? 编辑:我不愿复制列表,因为“ myarr”很大,因此会太慢。另外,我需要使用“ somecond()”检查附加对象。 编辑:在某些时候“ somecond(a)”将为假,因此不能有无限循环。
问题内容: 在Java中,我可以通过使用an ,然后使用迭代器的方法来删除迭代器返回的最后一个元素,如下所示: 我将如何在Python中执行此操作?我在for循环中遍历列表时无法修改列表,因为它会导致内容被跳过(请参阅此处)。而且似乎没有Java的等效接口。 问题答案: 遍历列表的 副本 :
输入是一个列表列表。请看下面。文件名是一个列表,包含的名称与列表中的列表数量相同(,,) 每个名称都附加到路径中:-- 程序在遍历列表时遍历包含路径的列表,并打印路径及其文件名。我希望输出是--。然而,我得到了下面的输出。请查看输入后的输出 输入 输出 我希望输出是-- 然而,我得到的结果如下: 我无法理解为什么在遍历列表时不能使用文件名遍历路径列表。我希望这有助于澄清问题。有人能帮忙吗? 我已经