def select(self, attr, default=None):
        """
        Select a given attribute (or chain or attributes) from the objects within the
        list.

        Args:
            attr (str): attributes to be selected (with initial `.` omitted)
            default (any): value to return if given element in list doesn't contain
                desired attribute

        Returns:
            nhl.List: list of selected attribute values
        """
        return List([_select(item, attr, default) for item in self])