如何删除来自文件的 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 行
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 行