from typing import List
from typing import Dict


def build_ip_and_range_dicts(ips_and_ranges: List[str]) -> List[List[Dict[str, str]]]:
    """
    Separates the list of ips and ranges to two lists, one of singles ips
    and the other of ranges of ips
    Args:
        ips_and_ranges: A list that might contain both ips and ranges of ips
    Returns: A list that has one list which consists of single value dictionaries of ips
             and another list which consists of single values dictionaries of ranges
    """
    list_of_ips = []
    list_of_ranges = []
    for value in ips_and_ranges:
        if '-' in value:
            list_of_ranges.append({'range': value})
        else:
            list_of_ips.append({'ip': value})
    return [list_of_ips, list_of_ranges]