在Python中,我非常喜欢使用列表推导式时实现的简洁性。我很喜欢做这样简洁的列表推导式:
然而,我经常遇到更冗长的实现方法,就像这样:
当一个
有没有一种重构工具,将冗长的 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])
当一个
for 循环
只遍历一个数据结构(例如 myList[]
)时,通常有一个简单的列表推导式语句等同于循环。有没有一种重构工具,将冗长的 Python 循环转换为简洁的列表推导式?
之前的 StackOverflow 问题 寻求了将循环转换为列表推导式的建议。但是,我还没有找到一个关于自动将循环转换为列表推导式表达式的问题。
动机: 有多种方法来回答“代码何时算干净?” 的问题。个人而言,我发现让代码简洁并摆脱一些废话往往会使代码更加简洁易读 。当然,“简洁代码”和“难以理解的一行代码”的界限也存在。尽管如此,我经常觉得编写和使用简洁的代码非常令人满意。
xrange(0, len(myList))
替换为enumerate(myList)
?当试图清理别人的代码或尝试将一些混乱的代码转换为可用于教程的东西时,这将特别有用。 - solvingPuzzlesfor elem in myList:
。 - jimharkurllib
在 Stack Overflow 上发布一个问题,等待 2-3 分钟,然后下载回答。 - georg