列表/数组数据操作和优化

问题描述

请参考以下算法: 我有一个名为bld的数组,该数组将steps作为列,floors作为行。

class testing:
    
    def abc(self,steps: int):
        
        floors = int(input('enter the number of floors: '))
        
        bld = []
        
        for i in range(steps):
            bld.append([])
            
            for j in range(floors):
                bld[i].append(j)
        print (bld)        
        
        return bld
    
def main():
    sf = testing()
    bld_array = sf.abc(20)
        
if __name__ == '__main__':
    main()

输出为:
[0,1,2],[0,2]

我想在第10步添加一个条件以具有预期的输出:
[0,**[0,0]**,2]

任何人都可以找到解决方法的线索。

解决方法

尝试:

bids = [[i for i in range(floors)] if j != 10 else [0 for i in range(floors)] for j in range(steps)]

顺便说一句,您的班级名称应为CamelCase。

编辑: 为什么选择CamelCase。

首先,通过CamelCase,我的意思是我应该这样做,这意味着除了单词开头之外的所有小写字母,大写字母的首字母缩写(即HTTPServer – HTTP代表超文本传输​​协议),所有单词都粘在一起。有时,这称为PascalCase,而camelCase会将第一个单词排除在大写之外(例如javascript中的函数)。我不知道谁是对的,但是在python中叫做CamelCase。

第二,原因。在命名类时,正式使用CamelCase(或CapCase)。有关其他命名约定,请参见PEP 8。所以,您可能会问,好吧,这就是惯例,但是我为什么要遵循呢?代码运行相同,对吧?

是的,直到您需要深入研究更复杂的问题时,您赋予事物的名称才是真正重要的,因为它们借用了它们的含义,做事方式以及与您之前完成的事情相关的信息。例如,一旦习惯了使用约定进行编码,阅读文档就像阅读教程一样,因为一旦看到名称,您就已经对有关对象将要发生的事情有了很大的暗示,使用它,等等。

而且,这仅是为了您的个人利益。试想一下其他人在阅读您的代码,而不是相反。如果他们能够将所有精力都投入到代码的含义中,而不是采用形式,这对他们会更好(就像您可以阅读有很多错误的句子,但是阅读正确的句子要容易得多)。当您展示代码时,这极大地增加了在论坛上给出答案的机会。例如,

最后,我认为约定按照您的思维方式进行建模。如果您遵循它们,则倾向于思考用某种语言编写代码时应该如何做,从而制作惯用代码(=好代码)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...