从列表中移除空项(Python)
我正在用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()
更新: