【发布时间】:2018-03-22 11:41:43
【问题描述】:
几周前我了解了列表推导,从那时起我就一直在使用它们。事实上,自从我了解了列表推导式以来,我并没有改变或建立一个单一的列表,我想知道这是否是个问题。我对列表理解有一些担忧...
- 首先,它们更快吗?
- 其次,它们是否更快,是否有在处理列表时使用 for 循环的情况。
例如,我需要创建一个仅包含特定数字的特定列表。很难解释为什么我正在创建的这个列表中允许某些数字,所以我不会解释它,因为它并不那么重要。
对于这段代码,我将介绍我解决它的两种方法,我想知道哪种方法更快、更“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))
感谢您的帮助!非常感谢。
【问题讨论】:
标签: python-3.x list list-comprehension