Exemplo n.º 1
0
def delete_repeated_data(data: t.List) -> None:
    """Напишите код для удаления дубликатов из несортированного
    связного списка."""
    for element in data:
        if data.count(element) > 1:
            for i in range(data.count(element) - 1):
                data.pop(data.index(data.index(element) + 1, element))
Exemplo n.º 2
0
def filter_by(a: typing.List, f: typing.Callable):
    pos = 0
    for v in a:
        if not f(v):
            a[pos] = v
            pos += 1
    while pos < len(a):
        a.pop()
Exemplo n.º 3
0
 def walk(element: typing.List, ancestors: typing.Tuple[BaseElement,
                                                        ...]):
     replacment_indices = []
     for i, e in enumerate(element):
         if isinstance(e, BaseElement):
             if select_func(e, ancestors):
                 replacment_indices.append(i)
             if isinstance(e, HTMLElement):
                 walk(list(e.attributes.values()),
                      ancestors=ancestors + (e, ))
             walk(e, ancestors=ancestors + (e, ))
     for i in replacment_indices:
         element.pop(i)
         if replacement is not None:
             element.insert(i, replacement)
         if not all:
             raise ReachFirstException()
Exemplo n.º 4
0
async def save_cache_mojang_profiles(uuids: typing.List) -> None:
    for file in os.listdir(Config.TEMP_PROFILE_JSON_DIR):
        if time.time() - os.path.getmtime(
                os.path.join(Config.TEMP_PROFILE_JSON_DIR,
                             file)) < CONSIDERED_CACHED:
            uuids.pop(uuids.index(file.replace('.json', '')))
    # Age check here as well?
    async with aiohttp.ClientSession() as session:
        for uuid in uuids:
            try:
                profilejson = await get_mojang_profile(uuid, session)
                with open(
                        os.path.join(Config.TEMP_PROFILE_JSON_DIR,
                                     "{}.json".format(uuid)), 'w') as pf:
                    pf.write(json.dumps(profilejson))
            except errors.InvalidQueryError:
                return
            except errors.Non200ResponseError:
                raise
Exemplo n.º 5
0
def traverse_decode(copy_inmutable: Tree, data_list: t.List, output: t.List,
                    parent: Tree):
    if copy_inmutable == None:
        return
    if copy_inmutable.root.value.character != "":
        output.append(copy_inmutable.root.value.character)
        if (len(data_list) > 0):
            traverse_decode(parent, data_list, output, parent)
        return
    if (len(data_list) > 0):
        elem = data_list.pop(0)
        if elem == '0':
            traverse_decode(copy_inmutable.root.left, data_list, output,
                            parent)
        if elem == '1':
            traverse_decode(copy_inmutable.root.right, data_list, output,
                            parent)
    return
Exemplo n.º 6
0
    def _serialize_stk(
        self,
        metadata: StackMeta,
        values: typing.List,
    ) -> ET.Element:
        obj = ET.Element("Obj", RefId=self._get_obj_id())
        self._create_tn(obj, metadata.list_types)

        stk = ET.SubElement(obj, "STK")
        while True:
            try:
                value = values.pop()
                self.serialize(value,
                               metadata.list_value_meta,
                               parent=stk,
                               clear=False)
            except IndexError:
                break

        return obj
Exemplo n.º 7
0
def revolve(l:typing.List):
    if l:
        l.append(l.pop(0))
Exemplo n.º 8
0
 def remove_customer(index, customers: typing.List):
     customers.pop(index)
Exemplo n.º 9
0
    def connected_components(self) -> List[list]:
        """
        Finds all the Strongly Connected Component(SCC) in the graph.
        @return: The list all SCC

        Notes:
        If the graph is None the function should return an empty list []
        """
        nodes = len(self.graph.nodes)
        tmp_list = [[] for _ in range(nodes)]
        List = []
        List_bool = [False] * nodes

        for i in range(nodes):
            if not List_bool[i]:
                List_bool[i] = True
                queue = [i]
                while queue:
                    i = queue[-1]
                    done = True
                    for v in self.graph.neighbors[i]:
                        tmp_list[v].append(i)
                        if not List_bool[v]:
                            List_bool[v] = True
                            done = False
                            queue.append(v)
                            break
                    if done:
                        queue.pop()
                        List.append(i)

        before = [None] * nodes
        while List:
            tmp = List.pop()
            queue2 = [tmp]
            if List_bool[tmp]:
                List_bool[tmp] = False
                before[tmp] = tmp
            while queue2:
                u = queue2[-1]
                done = True
                for j in tmp_list[u]:
                    if List_bool[j]:
                        List_bool[j] = done = False
                        queue2.append(j)
                        before[j] = tmp
                        break
                if done:
                    queue2.pop()

        before_scc = [[] for _ in range(nodes)]
        for i in range(len(before)):
            if before[i] == i:
                before_scc[i].append(before[i])
            else:
                t = before[i]
                if t is not None:
                    before_scc[t].append(i)
        scc = []
        for i in range(len(before_scc)):
            tmp = before_scc[i]
            if len(tmp) != 0:
                scc.append(tmp)

        return scc