Python 从readlines()中删除行

Python 从readlines()中删除行,python,Python,我想创建一个列表,按顺序打印变量,并从列表中删除相同的变量(如果有)。 例子: 一 二 三 一 四 1-必须打印一个,并从列表中删除[0]和[3] 但当我运行时,它会跳过变量。最好不要在迭代过程中更改列表的长度,所以将您想要的内容附加到新列表中,并跳过您不想要的内容 f = open('df.txt','r') l = f.readlines() for x in l: print(x) for n in l: if x == n: l.r

我想创建一个列表,按顺序打印变量,并从列表中删除相同的变量(如果有)。 例子: 一 二 三 一 四 1-必须打印一个,并从列表中删除[0]和[3]


但当我运行时,它会跳过变量。

最好不要在迭代过程中更改列表的长度,所以将您想要的内容附加到新列表中,并跳过您不想要的内容

f = open('df.txt','r')
l = f.readlines()
for x in l:
    print(x)
    for n in l:
        if x == n:
            l.remove(n)

Python的最新版本有一个保留插入顺序的Dict实现,因此您还可以编写:

mylist = []
f = open('df.txt','r')
l = f.readlines()
for x in l:
    print(x)
    for n in l:
        if x != n:
            mylist.append(x)
输出:

lines = 'one two three one four'.split(' ')

list(dict((l, None) for l in lines))

循环时更改列表的长度被认为是不好的做法。
['one', 'two', 'three', 'four']