Python 编写此代码的更好方法是什么?

Python 编写此代码的更好方法是什么?,python,performance,data-structures,structure,performance-testing,Python,Performance,Data Structures,Structure,Performance Testing,这是一个简单的代码,用于查找和打印第一次出现后最后一次出现的“zip”位置,因此如果没有找到“zip”或它只出现一次,则应打印-1。我写了两个代码,可以做同样的事情,我想知道哪一个是更好的代码,为什么以及如何改进它(除了添加注释) 起初我写了这段代码 text='所有压缩文件都已压缩' 指标=0 zip_position=text.find(“zip”,指示器) 打印机=压缩位置 周期=0 打印机\u确认=0 在压缩位置时!=-1: 打印机=压缩位置 zip_position=text.find

这是一个简单的代码,用于查找和打印第一次出现后最后一次出现的“zip”位置,因此如果没有找到“zip”或它只出现一次,则应打印-1。我写了两个代码,可以做同样的事情,我想知道哪一个是更好的代码,为什么以及如何改进它(除了添加注释)

起初我写了这段代码

text='所有压缩文件都已压缩'
指标=0
zip_position=text.find(“zip”,指示器)
打印机=压缩位置
周期=0
打印机\u确认=0
在压缩位置时!=-1:
打印机=压缩位置
zip_position=text.find(“zip”,指示器)
指示器=拉链位置+1
如果打印机>压缩位置和循环>1:
印刷机
打印机\u确认=1
周期+=1
如果周期<3且打印机确认!=1:
打印-1
然后,我在一个提示后编写了第二个代码,这是这一行: 打印(text.find('zip',text.find(“zip”)+1)

我的完整代码:

text=“所有zip文件都已压缩”
指标=1
zip_位置=(text.find('zip',text.find(“zip”)+指示器))
在压缩位置时!=-1:
zip_位置=(text.find('zip',text.find(“zip”)+指示器))
指标+=1
如果zip_position==-1和text.find(“zip”,text.find(“zip”)+(指示符-2))>text.find(“zip”):
指标-=2
zip_位置=(text.find('zip',text.find(“zip”)+指示器))
打印拉链位置
我可以看到第一个代码更大,但我不知道这是否是更好的编码方式。代码越短越好吗? 请告诉我你对哪个代码更好的看法


两个代码都给出相同的结果,没有错误。

实际上,您可以编写一个线性程序

indicator = text.rfind('zip') if text.count('zip')>1 else -1

最好在这里的堆栈代码审查中发布,哇,这很容易。我是一个初学者,不知道python中有内置的方法可以做到这一点,我真的没有想到这一点。非常感谢你。无论如何,如果没有内置的方法可以做到这一点,而我必须自己构建这些方法,也许在不同的场景中,哪种代码更好?哪一个结构更好,更容易理解?我将来应该如何编写代码?还有其他建议吗?第二个看起来更好。但你总能写出更好的解决方案。尝试更多并了解更多:)关于什么是好代码。这里有一个链接。