微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带列表的Python循环

如何解决带列表的Python循环

| 我在写一些Python 3.2代码,这个问题浮现在我脑海: 我有以下变量:
# a list of xml.dom nodes (this is just an example!)
child_nodes = [node1,node2,node3]
# I want to add every item in child_node into this node (this also a xml.dom Node)
parent = xml_document.createElement(\'TheParentNode\')
这正是我想要做的:
for node in child_nodes:
    if node is not None:
        parent.appendChild(node)
我这样写在一行中:
[parent.appendChild(c) for c in child_nodes if c is not None]
我根本不会使用列表结果,我只需要appendChild即可完成其工作。 我不是一个非常有经验的python程序员,所以我想知道哪个更好? 我喜欢单行解决方案,但我想从经验丰富的python程序员那里了解: 在代码美观/可维护性和性能/内存使用方面,哪个更好。     

解决方法

        在这种情况下,前者是可取的。 后者称为列表理解,并创建一个新的
list
对象,其中包含每次对
parent.appendChild(c)
的调用结果。然后将其丢弃。 但是,如果您想基于这种迭代来创建
list
,那么您当然应该使用列表推导。     ,        代码美观/可维护性是一个棘手的问题。这取决于您和与您一起工作的人来决定。 很长一段时间以来,我对列表理解等等都不满意,并且更喜欢以第一方式编写它,因为它使我更容易阅读。但是,与我一起工作的某些人更喜欢第二种方法。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。