在哪里询问我的代码是否清晰和良好。 因此,我有三项任务要做:
所以我试着循环它,并在一个循环中完成所有操作。 希望有一些反馈,有一个好的
names = ['mozzarella', 'cinderella', 'salmonella']
for i in range(len(names)):
for name in names:
if name == 'cinderella':
names[i] = name.capitalize()
i += 1
elif name == 'mozzarella':
names[i] = name.upper()
i += 1
elif name == 'salmonella':
names.remove(name)
输出:
['MOZZARELLA', 'Cinderella']
这里不需要进行两次迭代。您可以为
range()
执行一个操作,然后通过names[i]
直接调用列表i
是它正在迭代的范围中的当前位置,因此当您调用names[i]
时,它会在列表中调出该索引有几件事我会做得不同(因为你问的是如何编写干净的代码,我要解决的不仅仅是函数的准确性)。 通常,在处理具有不同关注点的问题时,将这些关注点分开通常是有用的。 在这种情况下,我不知道为什么要在同一个循环中管理所有3个关注点。 在软件中,您经常会发现一个关注点的发展速度与其他关注点的发展速度不同。 此外,在列表上迭代时删除元素通常不是一个好主意。我将使用类似以下内容:
请注意,赋值是对名称[:]而不是名称进行的。这将替换列表的内容,而不仅仅是将命名引用设置为其他列表
如果您认为这样更干净,您可以将所有修改合并到一个调用中
我认为您可以在这里使用pythonreduce或简单的forloop
两种方法都返回相同的结果,但都不修改
base_name
列表,而是生成包含结果的新列表相关问题 更多 >
编程相关推荐