【问题标题】:What does this line in python mean? [duplicate]python中的这一行是什么意思? [复制]
【发布时间】:2020-09-11 13:37:21
【问题描述】:

我在 Python 代码中遇到了这一行,但不知道它是怎么做的

[np.int32(track) for track in self.tracks]

这是上下文,代码是感知器分类器:

def draw_track(self, image):
    """Draw track lines on image."""
    cv2.polylines(image, [np.int32(track) for track in self.tracks], False, (0, 255, 0))

有人能解释一下它是如何工作的吗?

【问题讨论】:

  • 这是列表理解。
  • 该行创建了一个类似于self.tracks 的新列表,但每个元素的类型为np.int32
  • 它将曲目列表中的所有元素转换为int32数据类型。
  • @techytushar:你知道这一点,但要明确的是 OP:它不会改变 tracks,它会使用转换后的元素创建一个新的 list,而留下 tracks 未修改(除非它是一个迭代器,在这种情况下,它会在构建新的list 的过程中耗尽/清空。

标签: python


【解决方案1】:

这是一个list comprehension。它相当于:

lst = []
for track in self.tracks:
    lst.append(np.int32(track))

【讨论】:

    猜你喜欢
    • 2016-02-19
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2012-10-26
    相关资源
    最近更新 更多