"for"循环和"if"条件在python中创建列表

4 python loops

source=[1,2,3,4,2,3,5,6]

dst=[]
for item in source:
    if item not in dst:
        dst.append(item)

print(dst) # [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)

我可以将代码简化为以下内容:

dst=[item for item in [1,2,3,4,2,3,5,6] if item not in 'this array']
Run Code Online (Sandbox Code Playgroud)

谢谢

tim*_*geb 6

不,列表推导不能自我指涉.

您似乎想要从列表中删除重复项.见这个这个问题的办法对这个问题勿庸置疑.


gro*_*ina 4

一个集合可能就是您正在寻找的,因为在创建该数组时您无法引用该数组:

>>> source = [1,2,3,4,2,3,5,6]
>>> set(source)
{1, 2, 3, 4, 5, 6}
Run Code Online (Sandbox Code Playgroud)

dst不过,如果您确实想保留原始顺序,则可以使用 set ( )来跟踪已添加的内容seen

>>> source = [1,2,3,4,2,3,5,6]
>>> seen = set()
>>> dst = []
>>> for i in source:
>>>     if i not in seen:
>>>         dst.append(i)
>>>         seen.add(i)
>>>
>>> dst
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)