【发布时间】:2026-01-18 05:00:02
【问题描述】:
目标:在列表理解中创建一个条件语句,以 (1) 动态 测试 - 即,在每次迭代时 - 如果元素不在列表中理解给定 (2) 列表本身在每次迭代时更新。
后台代码:
arr = [2, 2, 4]
l = list()
期望的输出:
l = [2, 4]
通过 for 循环的期望行为:
for element in arr:
if element not in l:
l.append(element)
不正确的列表理解没有产生期望的行为:
l = [element for element in arr if element not in l]
问题重述:如何修复列表理解,使其生成所需的行为,即上述所需的输出?
【问题讨论】:
-
你不能改变你正在理解的同一个列表
-
我会用一套。
-
名称
l不会绑定到理解的结果,直到理解运行完成。 -
你否认了我所说的,但说的完全一样,只是措辞上的改动很少。正如@MadPhysicist 所说,名称
l尚未绑定。 @SwiftsNamesake 给了你一个解决方法。 -
@Remuze 我不想在 SO 上使用 pep8 玩具示例。
标签: python list loops conditional list-comprehension