在 Python 中,我真的很享受使用列表推导时实现的简洁性。我喜欢做简洁的列表理解:
myList = [1, 5, 11, 20, 30, 35] #input data
bigNumbers = [x for x in myList if x > 10]
但是,我经常遇到像这样更冗长的实现:
myList = [1, 5, 11, 20, 30, 35] #input data
bigNumbers = []
for i in xrange(0, len(myList)):
if myList[i] > 10:
bigNumbers.append(myList[i])
当 afor loop
只查看一个数据结构(例如myList[]
)时,通常有一个直接的列表理解语句,它等效于循环。
考虑到这一点,是否有一个重构工具可以将冗长的 Python 循环转换为简洁的列表理解语句?
以前的 StackOverflow 问题已要求有关将循环转换为列表理解的建议。但是,我还没有找到关于自动将循环转换为列表理解表达式的问题。
动机:有很多方法可以回答“代码干净意味着什么?”这个问题。就个人而言,我发现使代码简洁并消除一些绒毛往往会使代码更清晰和更具可读性。在“简洁的代码”和“难以理解的单行代码”之间自然有一条界限。尽管如此,我经常发现编写和使用简洁的代码是令人满意的。