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))
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()
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()
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
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
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
def revolve(l:typing.List): if l: l.append(l.pop(0))
def remove_customer(index, customers: typing.List): customers.pop(index)
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