如何使用列表解决此任务?

2024-05-04 06:20:17 发布

您现在位置:Python中文网/ 问答频道 /正文

从主列表和子列表制作列表


Tags: 列表
2条回答

正如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]

我建议将问题分为两个步骤:

  1. 生成棱锥砖列表(没有空格)
  2. 将空格(根据需要)添加到该列表的每个元素中

对于步骤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']]

然而,这个解决方案不考虑空的空间。要处理这些空白,您可以:

  1. 通过第二个列表运行result,或者:
  2. 编辑第一个(也是唯一一个)列表,在每个子列表的开头和结尾包含适当数量的空格。你知道吗

我让你自己决定如何实现这个。我希望这有帮助!你知道吗

相关问题 更多 >