python - 将对象列表解包到单独的属性中
问题描述
我有一个像这样的简单 Python 类:
class P(object):
def __init__(self, x, y):
self.x = x
self.y = y
我创建了这些对象的列表,例如:
import random
list_of_objects = [P(random.random(), random.random()) for i in range(1000)]
然后如何将 P 的属性解包到不同的列表中?
也就是说,我的目标是获得list_of_x, list_of_y
,其中这些定义为:
list_of_x = [p.x for p in list_of_objects]
list_of_y = [p.y for p in list_of_objects]
我想知道是否有更简洁的方法,例如使用 zip/tuples,而不是上面的代码,它涉及 2 个 for 循环。
解决方案
只需使用 1 for 循环并将 x/y 附加到空列表:
list_of_x = []
list_of_y = []
for p in list_of_objects:
list_of_x.append(p.x)
list_of_y.append(p.y)
推荐阅读
- ios - FirebaseStorage 无法为元数据创建 downloadURL
- c# - 如何修改表达式中的字段?
- c# - 使用 javascript 更新用户控件时,如何同步后面的代码?
- sql - HiveQL - 加入在我的 Select 语句上创建的列
- django - Django - 如何访问 prefetch_related 字段?
- c# - 单元测试 DateTime 逻辑
- python - 如何处理来自 Gtk.Switch 的“notify::active”信号?(MVC架构)
- .net - VC++ Process 类改变 StreamReader 行为
- simulation - Veins:在输出中获取 Tripinfo 和排放量
- c - 环境变量和本地化