最初我有一个坐标列表,用于绘制一个' zig-zag'形式上的模式:
[10,10,20,20,30,10,40,20]
我想检查所有' top' y坐标的值是相同的,以便模式可以工作。我通过以下方式提取它们:
a_vals = coords[1::4]
这给了我一个新的列表,我正在寻找10个所有元素。我也重复这个以检查后面的每个第二个坐标是否为20的y部分。
但是,现在坐标已被拆分为子列表,我仍然需要将它们全部提取到一个新列表中(所有值都是10,然后是20,以便以后检查):
[[10,10],[20,20],[30,10],[40,20]]
从我收集到的内容中,应该可以对其进行分割,但我不太确定如何使用所涉及的子列表,请记住它必须步入下一个子列表来提取值。
答案 0 :(得分:1)
您可以使用列表理解以及切片列表 -
a_vals = [y for x,y in coords[::2]]
这将获得所有 top 坐标y值,对于其他y值,您只需将上面的切片更改为coords[1::2]
。
演示 -
>>> coords = [[10,10],[20,20],[30,10],[40,20]]
>>> a_vals = [y for x,y in coords[::2]]
>>> a_vals
[10, 10]
>>> b_vals = [y for x,y in coords[1::2]]
>>> b_vals
[20, 20]
答案 1 :(得分:0)
>>> L = [10,10,20,20,30,10,40,20]
>>> L1 = [x for x in L[::2]] # First Elements
>>> L1
[10, 20, 30, 40]
>>> L2 = [x for x in L[1::2]] # Second Elements
>>> L2
[10, 20, 10, 20]
>>> [[x, y] for x, y in zip(L1, L2)] # Group Them
[[10, 10], [20, 20], [30, 10], [40, 20]]