如何删除来自文件的 3d python 列表中所有出现的字符

how to Remove all occurrences of a char in a 3d python List coming from a file

python代码是:

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结构,objective是:

[[['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']]]

谢谢!

您可以遍历主列表中的每个列表,然后使用 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 列表

使用:

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

在你的第 6 行