从列表中移除空项(Python)

2 投票
4 回答
5757 浏览
提问于 2025-04-15 19:23

我正在用Python读取一个格式不太好的文件,里面的值是用多个空格和一些制表符分开的,所以返回的列表里有很多空的项目,我该怎么去掉或者避免这些空项目呢?

这是我现在的代码:

import re

f = open('myfile.txt','r') 

for line in f.readlines(): 
    if re.search(r'\bDeposit', line):
        print line.split(' ')

f.close()

谢谢

4 个回答

1

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当我们想要检查一个变量的值是否符合我们的要求时,就可以使用条件语句。条件语句就像是在问程序:“如果这个条件成立,你就做这件事,否则就做另一件事。”

举个例子,假设我们有一个数字,我们想知道这个数字是不是大于10。如果是,我们就打印“这个数字大于10”;如果不是,我们就打印“这个数字小于或等于10”。这就是条件语句的基本用法。

在代码中,我们通常会用一些特定的符号和关键词来表示这些条件,比如“if”(如果)和“else”(否则)。这样,程序就能根据条件的不同,执行不同的操作。

总之,条件语句帮助我们控制程序的执行流程,让程序能够根据不同的情况做出不同的反应。

linesAsLists = [line.split() for line in open('myfile.txt', 'r') if 'Deposit' in line)]
11

不要明确指定 ' ' 作为分隔符。使用 line.split() 会在所有空白字符上进行分割。这和使用 re.split 是一样的:

>>> line = '  a b   c \n\tg  '
>>> line.split()
['a', 'b', 'c', 'g']
>>> import re
>>> re.split('\s+', line)
['', 'a', 'b', 'c', 'g', '']
>>> re.split('\s+', line.strip())
['a', 'b', 'c', 'g']
2
for line in open("file"):
    if " Deposit" in line:
         line=line.rstrip()
         print line.split()
for line in open("file"):
    if "Deposit" in line:
         line=line.rstrip()
         print line[line.index("Deposit"):].split()

更新:

撰写回答