如何解决列表/数组数据操作和优化
请参考以下算法:
我有一个名为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。所以,您可能会问,好吧,这就是惯例,但是我为什么要遵循呢?代码运行相同,对吧?
是的,直到您需要深入研究更复杂的问题时,您赋予事物的名称才是真正重要的,因为它们借用了它们的含义,做事方式以及与您之前完成的事情相关的信息。例如,一旦习惯了使用约定进行编码,阅读文档就像阅读教程一样,因为一旦看到名称,您就已经对有关对象将要发生的事情有了很大的暗示,使用它,等等。
而且,这仅是为了您的个人利益。试想一下其他人在阅读您的代码,而不是相反。如果他们能够将所有精力都投入到代码的含义中,而不是采用形式,这对他们会更好(就像您可以阅读有很多错误的句子,但是阅读正确的句子要容易得多)。当您展示代码时,这极大地增加了在论坛上给出答案的机会。例如,
最后,我认为约定按照您的思维方式进行建模。如果您遵循它们,则倾向于思考用某种语言编写代码时应该如何做,从而制作惯用代码(=好代码)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。