def extract(d, *args, default=None):
    """Return a tuple of results extracted from the dictionary using strings of paths to the values

    E.g. extract(d, 'a', 'b.c') is will return (d.get(a), d.get(b).get(c)

    """

    assert isinstance(d, dict)
    results = []
    for key in args:
        key = key.split('.')
        result = d
        for attr in key:
            if not isinstance(result, dict):
                result = default
                break
            result = result.get(attr)
            if result is None:
                result = default
                break
        results.append(result)
    return tuple(results)