Python 如何更改网格(字符串数组)中的单个字母?
对于给定的数字网格输入,在我的例子中,将一个数字更改为一个字母X,然后返回相同网格的最佳方式是什么 以下是我们无法触及的代码-如何处理输入:Python 如何更改网格(字符串数组)中的单个字母?,python,string,list,Python,String,List,对于给定的数字网格输入,在我的例子中,将一个数字更改为一个字母X,然后返回相同网格的最佳方式是什么 以下是我们无法触及的代码-如何处理输入: grid = [] for _ in range(n): grid_item = input() grid.append(grid_item) 对于我们的函数,我们把这个网格作为我们的参数 网格将看起来像 246 345 159 我想把一个数字,比如中间的4,改成X 我知道我做不到 grid[1][1] = "X" 因为输入是一个字符
grid = []
for _ in range(n):
grid_item = input()
grid.append(grid_item)
对于我们的函数,我们把这个网格作为我们的参数
网格将看起来像
246
345
159
我想把一个数字,比如中间的4,改成X
我知道我做不到
grid[1][1] = "X"
因为输入是一个字符串。我想我必须先把它改成一个列表,然后再改成X,然后再改回字符串
但是假设我必须写一个函数,它将遍历网格-
for i in range(len(grid)):
for j in range(len(grid[0])):
if blahblah:
grid[i][j] = "X"
这是我想要实现的目标的想法……我如何才能正确地完成它?试试这个:
grid[i] = grid[i][:j] + "X" + grid[i][j+1:]
作为旁注,您还应更改以下行:
for j in range(len(grid[0])):
到
你可以看到,如果你想把它们保留为str
如果确实要将字符串列表转换为列表列表,可以使用
for i in range(len(grid)):
gird[i] = list(grid[i])
然后,你可以做grid[i][j]=X
因为任何iterable对象都可以使用listiterable直接转换为列表
要转换回:
for i in range(len(grid)):
gird[i] = ''.join(grid[i])
您最好提供要实现的函数的输入和输出示例。因此,其他人可以更容易地提供帮助。在二维数组的上下文中,我将如何做到这一点?i、 e.要更改网格[0][i]=X尽管信息正确,但这并不能回答问题。我刚刚编辑了我的答案。我是一个新的投稿人,如果我犯了一些错误,请告诉我。顺便说一下,将其称为2d数组是不正确的。确切地说,这是一个列表列表。对于rangelengrid[i]中的j来说,这是一个很好的观点:``只是一个很好的实践;就我而言,它只是一个正方形的网格,所以很好。使用您的方法,在执行grid[i][:j]+X+grid[i][j+1:]方法后,for循环是否仍能运行到下一个j?是的,没有理由不能使用此方法执行多次替换。
for i in range(len(grid)):
gird[i] = ''.join(grid[i])