【问题标题】:Should I use a list comprehension or a for loop?我应该使用列表推导还是 for 循环?
【发布时间】:2018-03-22 11:41:43
【问题描述】:

几周前我了解了列表推导,从那时起我就一直在使用它们。事实上,自从我了解了列表推导式以来,我并没有改变或建立一个单一的列表,我想知道这是否是个问题。我对列表理解有一些担忧...

  1. 首先,它们更快吗?
  2. 其次,它们是否更快,是否有在处理列表时使用 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


【解决方案1】:

1.list 理解总是更快

2.如果您的列表只有某些数字并且您知道它们,那么查找表是进一步做任何事情的最快方法

【讨论】:

    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2014-04-27
    • 2021-10-22
    • 2014-04-27
    • 2021-02-03
    相关资源
    最近更新 更多