混淆线

2024-10-03 11:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在试图理解一个我不确定是否正确的代码:

left_lines = [[310, 319, 318, 406, 317, 322],[423, 425, 425, 357, 419, 414]]
test = sorted([line[1] for line in left_lines])[int(len(left_lines)/2)]

怎么只给我一个号码?它是否试图在left_lines[1]中找到最小的数字?你知道吗

更新

引用:http://sdc.autojazari.com/lane-detection/

更新2

我对Python不熟悉


Tags: 代码intesthttpforlenline数字
3条回答

我们把它拆开。你知道吗

In [3]: [line[1] for line in left_lines]
Out[3]: [319, 425]

给出每个子列表中的第二个数字(将子列表称为行)

sorted([line[1] for line in left_lines])
Out[4]: [319, 425]

对接收到的列表进行排序。你知道吗

现在[int(len(left_lines)/2)]部分将索引放入接收到的列表。索引是行数除以2(并转换为整数)。你知道吗

因此,如果您有x行,这段代码所做的就是将每行中的第二个数字从最小到最大排序,并给出中间值。你知道吗

也许这是所有行中所有第二项的中位数。你知道吗

[line[1] for line in left_lines]

这称为列表压缩。你知道吗

上述行的输出将是列表左行的每个子列表的第二个元素(索引1)[319425]。你知道吗

现在sorted是一个内置函数,它返回排序列表(您也可以使用此方法对元组进行排序)。你知道吗

sorted([line[1] for line in left_lines])=[319,425]

len是一个内置函数,用于查找字符串、元组或列表的长度。所以呢

int(len(left_lines)/2)=1

最后

sorted([line[1] for line in left_lines])[int(len(left_lines)/2)]=[319,425][1]

这意味着列表的第二个元素,即425。你知道吗

所以test等于425。你知道吗

left_lines = [[310, 319, 318, 406, 317, 322],[423, 425, 425, 357, 419, 414]]
test = sorted([line[1] for line in left_lines])[int(len(left_lines)/2)]

左\u线

这段代码是一个列表列表,意味着您已经声明了嵌套列表。你知道吗

试验

sorted()是一个用于排序的函数。你知道吗

[line[1]]将返回[310, 319, 318, 406, 317, 322],[423, 425, 425, 357, 419, 414]的列表

for line in left_lines这将按顺序遍历整个列表

[int(len(left_lines)/2)] int(len())将列表长度转换为int

(left_lines)/2将长度除以2

相关问题 更多 >