使用列表推导添加单独的元素

时间:2014-02-04 16:19:55

标签: python .net list-comprehension ironpython

我正在尝试使用IronPython中的列表解析生成对象列表,以将其作为数组传递给函数。下面的代码生成一个TreeNode个对象的数组,例如[treeNode1,treeNode2,treeNode3]我想在数组中添加一个根节点,以便像[treeNode1,treeNode2,treeNode3,root]那样扩展数组,而不是[[treeNode1,treeNode2,treeNode3],root]

def _to_tree_nodes(self,lst):
        l=dict()
        for tuple in lst:
            if tuple[1] not in l:
                l.update({tuple[1]:[tuple[0]]})
            else:
                l[tuple[1]].append(tuple[0])

        root = TreeNode("Level " + str(max(l)), Array[TreeNode]([TreeNode(x) for x in l[max(l)]]))
        for i in xrange(max(l)-1,0,-1):
            root = TreeNode("Level " + str(i), Array[TreeNode]([TreeNode(x) for x in l[i]]))

        return root

我怎样才能实现它?

1 个答案:

答案 0 :(得分:1)

只需连接一个额外的列表对象:

root = TreeNode("Level " + str(i), Array[TreeNode](
    [TreeNode(x) for x in l[i]] + [root]))