【发布时间】: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