Pythonzip
函数为
其自身的反转(在某种程度上),因此我们可以这样做:
points = [(1,2), (3,4), (5,6), (7,8)]
xs, ys = zip(*points)
现在是xs=[1,3,5,7]
和ys=[2,4,6,8]
.
我想知道是否可以用类实例来代替 元组:
from dataclasses import dataclass
@dataclass
class XY:
"2d point"
x: float | int
y: float | int
points = [XY(1,2), XY(3,4), XY(5,6), XY(7,8)]
xs, ys = zip(*[(p.x,p.y) for p in points])
但without和explicit的 list 理解能力.
当然,结果不是元组(xs,ys)
,而是具有关键字x
的字典
y
是因为,如果没有明确的列表理解,我们将收集
all个字段.