使用迭代器解压缩可变长度的列表

时间:2018-07-18 17:45:04

标签: python python-2.7

Python 2.7 中,我有一个生成器,用于接收0坐标列表并将其解压缩。

但是,有时列表不仅包含x,y。有时是x,y,而另一些时间是x,y,z

x,y,z,m

当座标包含两个以上的值时,我有xy_coords = [[0,0], [1,1], [2,2]] xyz_coords = [[0,0,0], [1,1,1], [2,2,2]] xyzm_coords = [[0,0,0,0], [1,1,1,1], [2,2,2,2]] def unpack_coords(coords): iterator = iter(coords) x, y = iterator.next() yield x yield y

是否有一种方法可以处理所有可能的情况,以便仅产生ValueError too many values to unpackxyz的值可以忽略。

1 个答案:

答案 0 :(得分:5)

只要iterator.next()的类型是listtuple,您就可以简单地分割前两个值

x, y = iterator.next()[:2]