将对象提取到对象列表的Python列表

时间:2020-08-17 09:41:45

标签: python list class

说我有一个名为'points'的类,其属性为'x'和'y'

,然后创建点列表p = [p1,p2,p3,p4] 其中p1.x = x1,py.y = y1 ...

如何轻松提取所有x和y值作为列表? 例如

x = [x1,x2,x3,x4]
y = [y1,y2,y3,y4]

这可以简单地在python中的一行代码中完成吗?

4 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

p = [p1,p2,p3,p4]
x = [point.x for point in p]
y = [point.y for point in p]

答案 1 :(得分:1)

x = [point.x for point in p]
y = [point.y for point in p]

可以工作,但这将使p重复两次,这是不必要的,您可以尝试:

p = [p1, p2, p3, p4]
x, y = list(zip(*[(point.x, point.y) for point in p]))

答案 2 :(得分:0)

您在这里

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

points = [Point(1,2), Point(3,4), Point(5,6), Point(7,8)]

x = [p.x for p in points]
y = [p.y for p in points]

print(x)
print(y)

输出:

[1, 3, 5, 7]
[2, 4, 6, 8]

尝试here

答案 3 :(得分:-1)

您可以这样做

x, y = [point.x for point in p],[point.y for point in p]