从主列表和子列表中创建列表
答案 0 :(得分:0)
我建议将问题分为两个步骤:
对于第1步,您可以使用此功能轻松完成此操作:
def pyramid(base, char):
result = [[char] * i for i in range(1, base+1, 2)]
return result
您看到它在做什么吗?它循环遍历一系列奇数,并且对于每个数字,它正在构造一个字符列表。每个构造的列表都是返回结果列表的元素。
因此,如果您致电pyramid(5, 'A')
,则会得到:
[['A'], ['A', 'A', 'A'], ['A', 'A', 'A', 'A', 'A']]
但是,此解决方案不解决空白问题。要处理这些空白,您可以:
result
,或者:我会让您决定如何自行实现。我希望这会有所帮助!
答案 1 :(得分:0)
如chepner所说,请尝试在没有列表理解的情况下编写自己的代码,然后修改自己的代码。
def pyramid(base, char):
return [ ['']*num_empty + [char]*num_char + ['']*num_empty for num_empty, num_char in enumerate(list(range(base, 0, -2)))][::-1]