不,没有(记录,可靠,稳定,… ;-)引用“当前理解”的方法。您可以只使用一个循环:
res = []for x in nums: if x not in res: res.append(x)
当然,这是非常昂贵的(O(N平方)),因此您可以使用辅助工具对其进行优化
set(我假设将项目的顺序与中的项目顺序保持
res一致
nums,否则
set(nums)可以做到;-)。
..:
res = []aux = set()for x in nums: if x not in aux: res.append(x) aux.add(x)
对于非常长的列表(O(N)而不是N平方),这要快得多。
编辑 :在Python
2.5或2.6中,
vars()['_[1]']可能实际上可以以您想要的角色工作
self(对于非嵌套listcomp)…这就是为什么我通过澄清没有
记录,可靠,稳定的 方式访问“列表”来限定我的陈述的原因” –特殊的,未记录的“名称”
'_[1]'(故意选择不是有效的标识符;-)是“实现工件”的顶点,任何依赖于它的代码都应摆脱困境;-) 。



