Skip to main content
`Ctrl`+`K`

# skbio.tree.TreeNode.find_all

TreeNode.find_all(name)

  Find all nodes that match a given name.

  Parameters:
    name TreeNode or str

      The name or node to find. If a `TreeNode` object is provided, all nodes with the same name will be returned.

  Returns:
    list of TreeNode

      The found nodes.

  Raises:
    MissingNodeError

      If the node to be searched for is not found.

  See also

  `find`
  `find_by_id`
  `find_by_func`

  Notes

  All internal nodes (including root) and tips with the given name will be returned, with the former placed before the latter in the returned list.

  The first call to `find_all` will cache a node lookup table in the tree on the assumption that additional calls to `find_all` will be made. See `details`.

  This method searches within the entire tree where self is located, regardless if self is the root node.

  Examples

      >>> from skbio.tree import TreeNode
      >>> tree = TreeNode.read(["((a,b)c,(d,e)d,(f,g)c);"])
      >>> print(tree.ascii_art())
                          /-a
                /c-------|
               |          \-b
               |
               |          /-d
      ---------|-d-------|
               |          \-e
               |
               |          /-f
                \c-------|
                          \-g

      >>> for node in tree.find_all('c'):
      ...     print(node.name, node.children[0].name, node.children[1].name)
      c a b
      c f g
      >>> for node in tree.find_all('d'):
      ...     print(node.name, str(node))
      d (d,e)d;

      d d;