我有一个清单
a = ["a", "b", "c", "d", "e"]
我想在如下所示的for循环中删除此列表中的元素:
for item in a:
print item
a.remove(item)
但这是行不通的。我能做什么?
使用for
循环遍历列表时,不允许从列表中删除元素。
重写代码的最佳方法取决于你要执行的操作。
例如,你的代码等效于:
for item in a:
print item
a[:] = []
另外,你可以使用while循环:
while a:
print a.pop(0)
我正在尝试删除符合条件的项目。然后我转到下一个项目。
你可以将每个不符合条件的元素复制到第二个列表中:
result = []
for item in a:
if condition is False:
result.append(item)
a = result
或者,你可以使用filter或列表推导并将结果分配回a:
a = filter(lambda item:... , a)
要么
a = [item for item in a if ...]
其中…代表你需要检查的条件。
问题内容: 嗨,我有一个问题,在遍历python中的列表时我似乎无法删除项目,这就是我得到的:如果用户在for循环中被问到要删除的问题时输入n或N,则应该删除标题,问题在于,当所有操作完成后,所有项目仍然存在,并且没有任何项目被移除… 问题答案: 以下代码将解决您的问题。您必须遍历列表的副本。您无法从要迭代的列表中删除项目。
问题内容: 现在,我知道在迭代循环中修改列表是不安全的。但是,假设我有一个字符串列表,并且我想剥离字符串本身。可变值的替换是否算作修改? 问题答案: 它被认为是不良形式。如果需要保留对列表的现有引用,请改用列表理解和切片分配。
问题内容: 有人可以向我解释此Python代码段的最后一行吗? 只是另一类。我不明白如何使用循环将对象存储到对象中。 问题答案: 您要询问的代码行是使用列表推导创建一个列表,并将在此列表中收集的数据分配给。相当于 说明 : 为了最好地解释它是 如何 工作的,可以使用一些简单的示例来帮助您 理解 所拥有的代码。如果您要继续使用Python代码,则将再次遇到列表理解,您可能想自己使用它。 注意,在下面
我知道不建议在迭代时从列表中删除元素。 您最好使用iterator.remove()、java流,或者将remove复制到外部列表中。 但这段简单的代码正好起作用: 使用安全吗?
问题内容: 我想从Python中的常量列表创建lambda对象列表;例如: 但是,当我运行它们时,这将创建一个lambda对象列表: 我希望它会打印 而是打印: 似乎所有lambda都被赋予了错误的参数。我做错了什么,有办法解决吗?我认为我使用的是Python 2.4。 编辑:更多尝试的事情,例如这样: 打印从1到25的期望平方,然后使用之前的print语句: 仍然给了我全部。现有的lambda对
问题内容: 我想遍历一个数组,以检查是否存在一个值。如果该值确实存在,我想删除包含它的元素。 我有以下代码: 找到值后,我不知道如何删除该元素。如何删除? 我必须使用这个问题。可能有替代方法,欢迎您共享它们。 问题答案: 如果您还获得了密钥,则可以这样删除该项目: