当我运行以下代码时:
size = 5
alph = 'zyxwvutsrqponmlkjihgfedcba'
lis_t = [n for n in alph]
lis = lis_t[(26-size):]
for i in range(2*size):
if i<size:
print("".join([n+'-' for n in lis[:i]] + lis[i] + ['-'+n for n in lis[:i]]).center(size, '-'))
if i > size:
print("".join([n+'-' for n in lis[:(9-i)]] + lis[i] + ['-'+n for n in lis[9-i]]).center(size, '-'))
我得到一个错误:
TypeError: can only concatenate list (not "str") to list
我不知道我的打印报表有什么问题。 它应该这样做:
--------e-------
------e-d-e------
----e-d-c-d-e----
--e-d-c-b-c-d-e--
e-d-c-b-a-b-c-d-e
--e-d-c-b-c-d-e--
----e-d-c-d-e----
------e-d-e------
--------e--------
此表达式有两个问题:
首先,对于
size = 5
,lis
的长度是5个元素。但是,其索引i
的范围是从0
到9
(range(2*size)
),因此i
的近一半值将导致lis
上的索引错误其次,假设
i
在边界内,我们将包含三个对象:为了实现这一点,我们需要将其表示为所有列表:
剩下的我就交给你处理了。对我来说,这似乎是一个潜在的递归问题:
输出
我们可以以@AnnZen的方式执行紧凑的迭代解决方案,但将其转换为Python;-)
尝试以下变体:
输出:
您还可以:
相关问题 更多 >
编程相关推荐