nm,b = input().split()
b = int(b)
n,m = [int(i) for i in nm]
s = '|'
layout = ['-------']
tal = [
['###', '# #', '# #', '# #', '###'],
[' #', ' #', ' #', ' #', ' #'],
['###', ' #', '###', '# ', '###'],
['###', ' #', '###', ' #', '###'],
['# #', '# #', '###', ' #', ' #'],
['###', '# ', '###', ' #', '###'],
['###', '# ', '###', '# #', '###'],
['###', ' #', ' #', ' #', ' #'],
['###', '# #', '###', '# #', '###'],
['###', '# #', '###', ' #', '###']
]
if b == 1:
for i in range(5):
print(tal[n][i][0])
tal[n][i][0] = ''
print(tal)
所以我试图将tal[n][i][0]
的所有内容(取决于用户类型)编辑为' '
(空格)。但是我在替换#
时遇到了麻烦你可以看到我尝试的上面的代码。
基本上; tal[n][i][0] = ' '
这是tal[0][0][0] = ' '
,但不起作用。我最后会遇到一个TypeError:
我得到TypeError:' str'对象不支持项目分配
示例 我想要这个:
tal = [
['###', '# #', '# #', '# #', '###'], <-- this line here
[' #', ' #', ' #', ' #', ' #'],
['###', ' #', '###', '# ', '###'],
['###', ' #', '###', ' #', '###'],
['# #', '# #', '###', ' #', ' #'],
['###', '# ', '###', ' #', '###'],
['###', '# ', '###', '# #', '###'],
['###', ' #', ' #', ' #', ' #'],
['###', '# #', '###', '# #', '###'],
['###', '# #', '###', ' #', '###']
]
列表中[0]的所有字符串。看上面^^
在那条线上。我想要在该行的每个字符串中,第一个索引被' '
替换。
所以它看起来像:
tal = [
[' ##', ' #', ' #', ' #', ' ##'], <-- this line here
[' #', ' #', ' #', ' #', ' #'],
['###', ' #', '###', '# ', '###'],
['###', ' #', '###', ' #', '###'],
['# #', '# #', '###', ' #', ' #'],
['###', '# ', '###', ' #', '###'],
['###', '# ', '###', '# #', '###'],
['###', ' #', ' #', ' #', ' #'],
['###', '# #', '###', '# #', '###'],
['###', '# #', '###', ' #', '###']
]
答案 0 :(得分:2)
Python中的字符串不可变:您无法修改它们。您唯一的选择是构造一个新字符串并替换它。
所以而不是:
tal[n][i][0] = ' '
你必须写:
tal[n][i] = ' '+tal[n][i][1:] #instead of tal[n][i][0] = ' '
因此,您可以通过构造一个以空格开头的新字符串替换完整字符串。
如果您想在任意位置编辑字符串(例如j
),您可以写:
tal[n][i] = tal[n][i][:j]+' '+tal[n][i][j+1:] #instead of tal[n][i][j] = ' '