0

蟒蛇代码是:

resolution = (4,4,4)
permList = []
with open("perm.txt",'r') as perm:
    file_lines = list(perm)
    for i in range(0, len(file_lines), resolution[2]):
        permList.append([list(line.rstrip()) for line in file_lines[i:i+resolution[2]]])

print(permList)

我正在尝试在 python 中创建一个 3d 列表,这些值来自一个“.txt”文件。

“perm.txt”文件:

1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1
1   1   1   1

此代码导致日志:

[[['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1']], [['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1']], [['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1']], [['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1'], ['1', '\t', '1', '\t', '1', '\t', '1']]]

我想知道如何删除制表 '\t',不改变 3d 结构,目标是:

[[['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1']], [['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1']], [['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1']], [['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1'], ['1', '1', '1', '1']]]

谢谢!

4

2 回答 2

0

您可以遍历主列表中的每个列表,然后使用 if 语句检查列表的元素是否为 \t 然后 pop() 它是否为真。

for i in range(len(L)):
  for j in range(len(L[0]):
    for k in range(len(L[0][0]):
      if L[i][j][k] == "\t":
        L[i][j].pop(k)

L 是你的 3D 列表

于 2020-08-05T16:38:46.237 回答
0

采用:

list(filter(lambda c: c != '\t', line.rstrip())

在你的第 6 行

于 2020-08-05T16:41:00.380 回答