从readlines()中删除行

时间:2018-06-28 14:11:30

标签: python

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

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

但是我运行时会跳过变量。

2 个答案:

答案 0 :(得分:1)

最好不要在迭代过程中更改列表的长度,因此将想要的内容追加到新列表中,然后跳过不需要的内容

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)

答案 1 :(得分:0)

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

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

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

输出:

['one', 'two', 'three', 'four']