python列表推导式(list comprehension)的用法

本文介绍了如何在Python中实现pose_tracking函数,涉及列表初始化、长度计算以及使用NumPy创建全零数组scores,以处理追踪点和相关得分。

def pose_tracking(pose_results, max_tracks=2, thre=30):
    tracks, num_tracks = [], 0
    num_joints = None
    for idx, poses in enumerate(pose_results):
        if len(poses) == 0:
            continue
        if num_joints is None:
            num_joints = poses[0].shape[0]
        track_proposals = [t for t in tracks if t['data'][-1][0] > idx - thre]
        n, m = len(track_proposals), len(poses)
        scores = np.zeros((n, m))

 track_proposals = [t for t in tracks if t['data'][-1][0] > idx - thre]

其实可以试试print(track_proposals)

for和in中间的t有点像函数自变量的意思,if后面有点像自变量的取值范围的意思

而for前面的t有点像函数的因变量的意思

在这个上下文中,"tracks"是一个空列表,用于存储追踪的结果。
"num_tracks"是一个变量,初始值为0,用于记录当前追踪的数量。

这行代码的作用是初始化追踪列表和追踪数量,将追踪列表设置为空列表,追踪数量设置为0。这样,开始时没有进行任何追踪,追踪列表为空。

n, m = len(track_proposals), len(poses)

这行代码是在Python中使用多重赋值(Multiple Assignment)的语法。它将两个变量同时赋值为表达式的结果。

具体地说,这行代码将len(track_proposals)的结果赋值给变量n,将len(poses)的结果赋值给变量m

这里使用的len()函数是用于获取可迭代对象的长度(元素个数)的内置函数。len(track_proposals)返回track_proposals列表的长度,len(poses)返回poses列表的长度。

通过这行代码,可以方便地将track_proposals列表的长度赋值给变量n,将poses列表的长度赋值给变量m,以便后续使用这两个变量进行其他操作或计算。

 scores = np.zeros((n, m))

这行代码使用了NumPy库来创建一个大小为(n, m)的全零数组(array)。

具体地说,np.zeros((n, m))使用NumPy的zeros()函数来创建一个由零填充的数组。该函数的参数是一个表示数组形状的元组(n, m),其中nm是之前代码中定义的变量。

这行代码的作用是创建一个大小为(n, m)的二维数组,并将其赋值给变量scores。这个数组的所有元素都将被初始化为零。

通过这个操作,你可以在后续的代码中使用scores数组来存储和操作与nm相关的数据。这个数组可以用于存储分数、得分矩阵或其他需要二维数组结构的数据。

参考:

python列表推导式(list comprehension)的用法,速查-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值