几个星期前,我了解了列表理解,从那时起我就一直在使用它们。事实上,自从我学习了列表推导以来,我没有改变或构建一个列表,我想知道这是否是一个问题。我对列表理解有一些顾虑......
例如,我需要创建一个只包含特定数字的特定列表。我很难解释为什么在我正在创建的列表中允许某些数字,所以我不会解释它,因为它并不重要。
对于这段代码,我将介绍我解决它的两种方法,我想知道哪种方法更快,更“Pythonic”解决方案,我也想知道是否有更好的方法来解决这个问题。
解决方案1:
coordinateShell = [0, 1, 2, 3, 16, 17, 18, 19]
outerShell = [(xCoordinate, yCoordinate) for xCoordinate in range(20) for yCoordinate in range(20)
if xCoordinate in coordinateShell or yCoordinate in coordinateShell]
解决方案2:
coordinateShell = [0, 1, 2, 3, 16, 17, 18, 19]
outerShell = []
for xCoordinate in range(20):
for yCoordinate in range(20):
if xCoordinate in coordinateShell or yCoordinate in coordinateShell:
outerShell.append((xCoordinate, yCoordinate))
感谢您的帮助!非常感谢。
答案 0 :(得分:0)
1.list理解将永远更快
2。如果您的列表中只有某些数字,并且您知道这些数字,那么查找表是进行进一步操作的最快方法