2024-09-25 00:23:14 发布
网友
有没有办法从列表理解中创建一个列表元组?在
比如:
actual_clients_emails, actual_client_names = [partner.email, partner.name for partner in op_client.ResPartner.browse([])]
我想从一个列表中创建两个列表。在
我可以这样做:
是的。在
client_names = tuple([partner.email, partner.name for partner in op_client.ResPartner.browse([])])
我喜欢优雅的单行代码,但在这种情况下,为了清晰起见,我宁愿将其拆分:
partners = op_client.ResPartner.browse([]) # get the partners list actual_clients_emails = [p.email for p in partners] actual_client_names = [p.name for p in partners]
如果“partners”是一个列表,那么这应该可以正常工作。在
如果不是这样,它就是一个生成器,那么您不应该请求它两次来生成您的伙伴序列。在这种情况下,该代码应该证明更好:
在我看来,第二种解决方案的可读性较差,因此更糟。不过,它更像Python,也更多才多艺。在
这只需使用the ^{} built-in function完成:
actual_clients_emails, actual_client_names = zip( *[(partner.email, partner.name) for partner in op_client.ResPartner.browse([])])
是的。在
我喜欢优雅的单行代码,但在这种情况下,为了清晰起见,我宁愿将其拆分:
如果“partners”是一个列表,那么这应该可以正常工作。在
如果不是这样,它就是一个生成器,那么您不应该请求它两次来生成您的伙伴序列。在这种情况下,该代码应该证明更好:
^{pr2}$在我看来,第二种解决方案的可读性较差,因此更糟。不过,它更像Python,也更多才多艺。在
这只需使用the ^{} built-in function 完成:
相关问题 更多 >
编程相关推荐