Python 混乱的代码行
我试图理解一个代码,但我不确定我是否正确:Python 混乱的代码行,python,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)] 这怎么只给了我一个号码?它是否试图在左行[1]中找到最小的数字 更新 参考: 更新2 我是Python新手让我们把它拆开 In [3]: [line[1]
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)]
这怎么只给了我一个号码?它是否试图在左行[1]
中找到最小的数字
更新
参考:
更新2
我是Python新手让我们把它拆开
In [3]: [line[1] for line in left_lines]
Out[3]: [319, 425]
为您提供每个子列表中的第二个数字(您将子列表称为行)
对收到的列表进行排序
现在,[int(len(left_行)/2)]
部分将索引放入接收列表。索引是行数除以2(并转换为整数)
所以这段代码的作用是,假设你有x
行,将每行的第二个数字从最小到最大排序,并给出中间值
也许这是所有行中所有第二项的中间值
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)]
左/右线
此代码是列表的列表,表示已声明嵌套列表
测试
sorted()
是一个用于排序的函数
[line[1]]
将返回[3103193187322]、[423425425357414]的列表。
对于左行中的行
这将以顺序方式在整个列表中迭代
[int(len(左)行)/2]int(len())
将列表长度转换为int
(左行)/2
将长度除以2
[line[1] for line in left_lines]
这称为列表压缩
上述行的输出将是列表左_行的每个子列表的第二个元素(索引1)[319425]
现在,sorted是一个内置函数,它返回排序列表(您也可以使用此方法对元组进行排序)
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。你为什么不问问作者?你想在这里实现什么?这个代码的预期输出应该是什么?@TigerhawkT3我不知道作者是谁,就像它是所有第二个元素的中值一样。不,因为最小的数字应该是
319
。是的,我的错!对Python来说非常陌生
int(len(left_lines)/2)=1
sorted([line[1] for line in left_lines])[int(len(left_lines)/2)]=[319,425][1]