python - 在二维数组中的指定索引处插入字符串
问题描述
我想通过 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'
但我想这不是我非常有价值的评论,如果我最终不知道如何完成任务......
解决方案
您可以使用简单的索引而不是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]]
推荐阅读
- css - 如何通过包含字体路径的 source() 在模板中加载 CSS 文件
- javascript - Dynamodb:使用地图索引更新地图数组
- c++ - C++ SFML tile map最后一行错误大小问题
- javascript - 循环LI时Jquery替换
- git - Azure DevOps:如何使用 REST API 存储库在 GIT 存储库中创建文件夹
- python - 如何计算可能包含列表和字符串的变量中的字符
- swift - 有没有办法在不删除视图并重新添加的情况下更新 StackView 中的视图?
- ruby-on-rails - Pundit::AuthorizationNotPerformedError
- spotfire - 如何从存在多个满足条件的整体之间的字符串中提取文本并返回所有值
- reactjs - React Router 仅重写不存在的 url