在 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 unpack
和x
。 y
和z
的值可以忽略。
答案 0 :(得分:5)
只要iterator.next()
的类型是list
或tuple
,您就可以简单地分割前两个值
x, y = iterator.next()[:2]