from typing import Dict
from typing import Union
from typing import List


def create_single_host_list(ip_and_range_lists: Dict[str, Union[str, List]]) -> List[str]:
    """
    Creates a single list containing both single ips and ranges of ips
    Args:
        ip_and_range_lists: A dictionary that can have either a single ip as a string or
        a list of single ips in the key 'Address' and/or a single range as a string or
        a list of range of ips in the key 'Range'
    Returns: A list that has both ips and ranges of ips
    """
    ip_and_range_list = []

    if 'Address' in ip_and_range_lists:
        if isinstance(ip_and_range_lists['Address'], str):
            ip_and_range_list.extend([ip_and_range_lists['Address']])
        else:
            for address in ip_and_range_lists['Address']:
                ip_and_range_list.append(address)
    if 'Range' in ip_and_range_lists:
        if isinstance(ip_and_range_lists['Range'], str):
            ip_and_range_list.extend([ip_and_range_lists['Range']])
        else:
            for ip_range in ip_and_range_lists['Range']:
                ip_and_range_list.append(ip_range)
    return ip_and_range_list