首页 > 解决方案 > 在二维数组中的指定索引处插入字符串

问题描述

我想通过 2 步在数组的一行中的指定索引处插入一个字符串。从矩阵:

A=[[1, 2, 3, 4, 5],
   [6, 7, 8, 9, 10],
   [1, 1, 2, 2, 3],
   [2, 3, 4, 5, 6],
   [4, 5, 6, 7, 7],
   [5, 7, 6, 8, 9]]

我想收到:

A=[[**x**, 2, 3, 4, 5],
   [6, 7, 8, 9, 10],
   [**x**, 1, 2, 2, 3],
   [2, 3, 4, 5, 6],
   [**x**, 5, 6, 7, 7],
   [5, 7, 6, 8, 9]]

或者:

A=[[1, 2, 3, 4, 5],
   [**x**, 7, 8, 9, 10],
   [1, 1, 2, 2, 3],
   [**x**, 3, 4, 5, 6],
   [4, 5, 6, 7, 7],
   [**x**, 7, 6, 8, 9]]

或者:

A=[[1, 2, **x**, 4, 5],
   [6, 7, 8, 9, 10],
   [1, 1, **x**, 2, 3],
   [2, 3, 4, 5, 6],
   [4, 5, **x**, 7, 7],
   [5, 7, 6, 8, 9]]

等等。希望您理解我的问题(我使用粗体字母来区分字符串)。如果我尝试:

def r(l):
    for i in l[::2]:
        i.insert(0, 'x')
    return l

它返回:

'int' 对象没有属性 'insert'

但我想这不是我非常有价值的评论,如果我最终不知道如何完成任务......

标签: pythonarraysstringinsert

解决方案


您可以使用简单的索引而不是insert

def r(l, idx=0):
    for i in l[::2]:
        i[idx] = 'x'
    return l

>>> print(r(A))
[['x', 2, 3, 4, 5], [6, 7, 8, 9, 10], ['x', 1, 2, 2, 3], [2, 3, 4, 5, 6], ['x', 5, 6, 7, 7], [5, 7, 6, 8, 9]]

idx参数为您提供要更改条目的索引。例如,如果您想将第三个元素更改为x,则使用:

>>> print(r(A, idx=2))
[[1, 2, 'x', 4, 5], [6, 7, 8, 9, 10], [1, 1, 'x', 2, 3], [2, 3, 4, 5, 6], [4, 5, 'x', 7, 7], [5, 7, 6, 8, 9]]

推荐阅读