因此,基本上,我试图获取一个文件并分解它,这取决于文本在文件中的位置。
所以我有一个方法看起来像这样
def sort_file(f):
#print(f.read())
mnemonics = []
mnemonic_line = []
next(f)#skip the default group on the first line
for line in f.readlines():
mnemonic_line.append(line[0:3])
mnemonic_line.append(line[5:8])
#print(line[5:8])
#print(line[9:69])
#print(line[69:139])
#print(line[139:190])
mnemonics.append(mnemonic_line)
#del mnemonic_line[:]
pdb.set_trace()
#print(line.split())
#print(len(line))我试图创建一个列表列表,其中每一行都是一个列表,而整个文件是一个行列表。
所以我想我知道问题是什么,但我不知道如何解决。据我所知,每一次我经历,我添加到列表中,我使用我自己的列表,它每一次都在增长。
(Pdb) print mnemonics
[['CTM', 'ABS']]
(Pdb) c
(Pdb) print mnemonics
[['CTM', 'ABS', 'CTM', 'ACA'], ['CTM', 'ABS', 'CTM', 'ACA']]
(Pdb) c
(Pdb) print mnemonics
[['CTM', 'ABS', 'CTM', 'ACA', 'CTM', 'ACC'], ['CTM', 'ABS', 'CTM', 'ACA', 'CTM', 'ACC'], ['CTM', 'ABS', 'CTM', 'ACA', 'CTM', 'ACC']]如您所见,我的mnemonic_line列表每次循环并在位置1、2、3、4重新添加时都会增长.在其当前循环处设置值。
我认为我需要做的是每次创建一个新的列表,并将它添加到列表中,这样我的输出就像这样
[['CTM', 'ABS'],['CTM', 'ACA'],['CTM', 'ACC']]对于如何做到这一点,我们将不胜感激:)
发布于 2014-07-11 05:52:46
在循环中将mnemonic_line附加到mnemonics之后,您不会清除(或重新初始化)它。这就是我的意思:
for line in f.readlines():
mnemonic_line.append(line[0:3])
mnemonic_line.append(line[5:8])
mnemonics.append(mnemonic_line)
mnemonic_line = []发布于 2014-07-11 05:53:43
只需将mnemonic_line = []转换为for循环:
def sort_file(f):
#print(f.read())
mnemonics = []
next(f)#skip the default group on the first line
for line in f.readlines():
mnemonic_line = [] # <------
mnemonic_line.append(line[0:3])
mnemonic_line.append(line[5:8])
mnemonics.append(mnemonic_line)
pdb.set_trace()发布于 2014-07-11 05:49:45
看看你的代码。每次迭代时都将mnemonic_line附加到mnemonics中,但并不是清除mnemonic_line
看看这个,然后将它应用到您的代码中。
>>> lol = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> a = [] # your mnemonics
>>> b = [] # your mnemonic_line
>>> for line in lol:
b.append(line[:2])
a.append(b)
>>> a
[[[1, 2], [4, 5], [7, 8]], [[1, 2], [4, 5], [7, 8]], [[1, 2], [4, 5], [7, 8]]]
>>> b
[[1, 2], [4, 5], [7, 8]]
>>> a = []
>>> b = []
>>> for line in lol:
b = []
b.append(line[:2])
a.append(b)
>>> a
[[[1, 2]], [[4, 5]], [[7, 8]]]
>>> b
[[7, 8]]https://stackoverflow.com/questions/24690768
复制相似问题