替换矩阵中所有出现的数字 python

Replace all occurances of a number in a matrix python

输入是包含矩阵的多行字符串:

input = '''22 13 17 11  0
 8  2 23  4 24
21  9  7 16  7
 6 10  3  7  5
 1 12 20 15 19'''

我必须用 -1 替换所有出现的地方,比方说 7。所以输出数组将是:

output = '''22 13 17 11  0
 8  2 23  4 24
21  9  -1 16  -1
 6 10  3  -1  5
 1 12 20 15 19'''

您可以将其保留为字符串格式,只需使用 word-separator regex and sub 您想要的所有特定数字:

import re

s = '''22 13 17 11  0
 8  2 23  4 24
21  9  7 16  7
 6 10  3  7  5
 1 12 20 15 19'''

num = 7
target = -1
print(re.sub(rf'\b{num}\b', str(target), s))

将给予:

22 13 17 11  0
 8  2 23  4 24
21  9  -1 16  -1
 6 10  3  -1  5
 1 12 20 15 19

您可以尝试用空格拆分它,然后 运行 一个 for 循环。

s = '''22 13 17 11  0
 8  2 23  4 24
21  9  7 16  7
 6 10  3  7  5
 1 12 20 15 19'''

a = s.split(" ")
b = []
for i in a:
    if i == "7":
        b.append("-1")
    else:
        b.append(i)

c = " ".join(b)
print(c)