【发布时间】:2019-12-11 18:25:59
【问题描述】:
我需要最快的方式来读取一个 txt 文件并返回 2 个列表。
文件以一些空行开头,然后有一个需要在列表中分配的 n*m 表,然后是一些空行和一个单词列表,每行可能包含 1 个或多个用空格分隔的单词
这就是我所做的,但在我看来会变慢,可能我正在寻找迭代的东西
with open(file) as f:
sub = ''
matrix = []
word = []
c = 0
a = False
for line in f:
if line == '\n':
if c == 1:
a = True
continue
if a:
l = line.split()
for x in l:
word.append(x)
else:
sub = line.strip('\n')
matrix.append(sub)
c = 1
f.close()
matrix = [x.upper() for x in matrix]
word = [x.upper() for x in word]
return matrix, word
示例文件应该是: '\n' 是空白行
example.txt:
\n
\n
\n
jebvoqbfvqoif
feqbfoeqbfoie
qfenfoeiqnfoi
ejfnqoeifboqe
nefoineoifneo
nfeqiofhneoif
enfqoinfeoifn
fewknfoiewnfn
\n
\n
\n
efwhhewof eiwofoiefw fwnenfif
wefioh
wfeno
ewfioef
oefkofeofo
输出应该是:
list 1:
[
"jebvoqbfvqoif",
"feqbfoeqbfoie",
"qfenfoeiqnfoi",
"ejfnqoeifboqe",
"nefoineoifneo",
"nfeqiofhneoif",
"enfqoinfeoifn",
"fewknfoiewnfn"]
list 2:
[
"efwhhewof",
"eiwofoiefw",
"fwnenfif",
"wefioh",
"wfeno",
"ewfioef",
"oefkofeofo"]
【问题讨论】:
-
文件实际上是否在这些行中包含
\n或者这只是一个文字?在这种情况下,请删除所有\n并留下空白行。文件本身是否也在顶部包含example.txt?如果不是,请将您的问题重新格式化为文件的实际外观。 -
嗨,对不起,\n 表示空行