我想要得到这个:
[['A', 'A', 'A'], ['', 'A', '']]我有一些代码,但结果是:
[['A', 'A', 'A'], ['A', 'A', 'A']]我知道我只是插入了这个字符,但是如何从两边移除元素呢?
底座-金字塔的底座
字符-应填充金字塔的字母
def matrix(base: int, char: str) -> list:
new_list = []
n = 0
for i in range(base // 2 + 1):
row = []
for m in range(base):
row.insert(n, char)
n += 1
new_list.append(row)
return new_list
matrix(3, "A")发布于 2019-10-20 19:35:23
您可以使用类似以下内容:
def matrix(base: int, char: str) -> list:
new_list = []
step = 0
while step < base / 2:
row = ['']*step + [char]*(base-2*step) + ['']*step
new_list.append(row)
step += 1
return new_list
matrix(3,"A")发布于 2019-10-20 20:03:05
将以下几行添加到现有代码中的外部for循环中应该会得到所需的结果:
for j in range(0,i):
new_list[i][j] = ''
new_list[i][-1-j] = ''说明:在每一次迭代中,我们基本上在列表的开头和结尾比以前多做了一个元素作为''。
因此,结果代码将是:
def matrix(base: int, char: str) -> list:
new_list = []
n = 0
for i in range(base // 2 + 1):
row = []
for m in range(base):
row.insert(n, char)
n += 1
new_list.append(row)
for j in range(0,i):
new_list[i][j] = ''
new_list[i][-1-j] = ''
return new_list
print(matrix(3,"A"))https://stackoverflow.com/questions/58472491
复制相似问题