Pesquisa de site

Python - Produto de intervalos válidos


<h2>Introdução <p>Python, uma linguagem de codificação popular conhecida por sua facilidade de uso e flexibilidade, apresenta inúmeros recursos e módulos para lidar com diversas tarefas computacionais. Neste artigo, nos aprofundamos em um problema específico: determinar o resultado de intervalos válidos no código Python. Através da compreensão da ideia subjacente, você adquirirá conhecimentos valiosos sobre como manipular intervalos, implementar critérios e coletar o resultado de dígitos numéricos que aderem a determinados critérios.

Definição

A ideia de calcular o resultado de intervalos aceitáveis implica localizar a multiplicação de números dentro de um limite específico. Esses dígitos precisam atender a estipulações ou diretrizes específicas. Frequentemente utilizado em cálculos matemáticos, processamento de dados e desafios algorítmicos. A triagem ou verificação de intervalos é necessária antes de executar qualquer atividade.

Sintaxe

valid_ranges_product(numbers)

Onde os números são uma lista de números.

A função valid_ranges_product() aceita um parâmetro, valores numéricos, compreendendo um conjunto de números. Este método percorre o conjunto, começando pelo item inicial. Quando o elemento não é zero, a função inicia um novo intervalo. Esta função continua inserindo itens dentro do escopo até encontrar um elemento void ou o item final. Depois que o método conclui a sequência, ele calcula o resultado dos componentes da matriz.

Algoritmo

  • Etapa 1: comece com um array em branco para armazenar os conjuntos de itens não nulos.

  • Passo 2: Caso o elemento existente não seja zero, inclua-o no grupo atual.

  • Passo 3: Caso o elemento existente não seja zero, inclua-o no grupo atual.

  • Passo 4: Se o valor atual for zero e a coleção atual não estiver vazia, determine a multiplicação do conjunto atual.

  • Passo 5: Em seguida, inclua-o na coleção de mercadorias.

Abordagem

  • Abordagem 1: Usando loops.

  • Abordagem 2: Usando itertools.groupby()

Abordagem 1: Usando loops

Exemplo

def valid_ranges_product(list):
    groups = []
    current_group = []
    products = []

    for num in lst:
        if num != 0:
            current_group.append(num)
        elif current_group:
            product = 1
            for n in current_group:
                product *= n
            products.append(product)
            current_group = []

    if current_group:
        product = 1
        for n in current_group:
            product *= n
        products.append(product)

    return products

lst = [4, 9, 0, 0, 3, 4, 5, 0, 0, 4, 0]
result = valid_ranges_product(lst)
print(result)

Saída

[36, 60, 4]

A função `valid_ranges_product` recebe uma lista, `lst`, como entrada. Ele fornece uma variedade de itens de intervalos aceitáveis dentro da lista fornecida. As listas são utilizadas para armazenar clusters de elementos que não são zero. Este grupo atual é atualmente gerenciado e os produtos resultantes serão salvos em matrizes distintas.

Este código então faz um loop para cada item, `num`, na lista fornecida `lst`. Caso o elemento atualmente não seja igual a zero, ele é adicionado ao grupo atualmente selecionado. Porém, caso o elemento existente seja igual a zero e o `grupo existente` contenha valores. Isto implica que um intervalo aceitável foi descoberto. Neste cenário, o programa calcula a saída da multiplicação do `grupo_atual` percorrendo seus elementos e obtendo o produto. O resultado é posteriormente adicionado à lista de “produtos”. O `current_group` é redefinido para uma lista sem elementos.

Pode haver um grupo incompleto se a lista de entrada terminar com elementos que não sejam zero. Para gerenciar a situação, o software testa se o `grupo_atual` não está ocupado. Caso exista, calcula a multiplicação dos objetos restantes no grupo considerado. Em seguida, adiciona a mercadoria ao array chamado `produtos`.

Por fim, a sub-rotina gera a lista de `produtos`. Inclui os elementos dos escopos elegíveis na matriz inicial.

No código primário, uma coleção lst é atribuída com lista de valores [4, 9, 0, 0, 3, 4, 5, 0, 0, 4, 0]. A lista a seguir descreve uma série de dados numéricos, incluindo zero funcionando como um divisor para separar diversos intervalos. O procedimento da função valid_ranges_product é executado fornecendo lst como entrada. O estoque final de itens é colocado na variável de resultado. A função de exibição exibe o valor armazenado no resultado.

Abordagem 2: Usando itertools.groupby()

Exemplo

from itertools import groupby
from functools import reduce

def valid_ranges_product(lst):
    groups = [list(g) for k, g in groupby(lst, key=lambda x: x != 0) if k]
    product = [reduce(lambda x, y: x * y, group) for group in groups]
    return product

lst = [4, 9, 0, 0, 3, 4, 5, 0, 0, 4, 0]
result = valid_ranges_product(lst)
print(result)

Saída

[36, 60, 4]

Este trecho de código emprega o algoritmo `groupby` dentro do módulo `itertools`. Isso organiza os elementos sequenciais dentro de uma matriz de acordo com uma função primária. A operação `reduce` da biblioteca `functools` é frequentemente usada. Esta função aplica a função especificada a cada elemento de um iterável, combinando-os com um valor solitário. O programa calcula o resultado de intervalos corretos dentro de uma coleção de entrada. Vamos analisar o programa e descrevê-lo de forma abrangente, incorporando o resultado.

A função `valid_ranges_product` é especificada para exigir uma lista `lst` como parâmetro de entrada. Esta função retorna um array `resultado` com os produtos calculados dentro dos valores aceitáveis dentro da lista fornecida.

Dentro da função, o método `groupby` é utilizado para agrupar itens consecutivos dentro da lista fornecida, dependendo se eles são iguais a zero ou não. O método `groupby` aceita uma função como entrada, que determina como os objetos são categorizados. O parâmetro `key` é definido como uma função lambda `lambda x: x!= 0` para verificar os critérios de agrupamento. Isto gera uma matriz de clusters onde cada categoria contém entradas contínuas diferentes de zero.

Então, a função agregada é empregada em uma compreensão de lista para determinar o resultado obtido da multiplicação de cada grupo. A função reduzir é uma função incorporada na linguagem de programação Python que usa uma função especificada para os itens de uma sequência e retorna um valor solitário. Neste cenário, a função agregada é empregada para determinar o resultado de cada grupo dentro da compreensão da lista. A função lambda lambda x, y: cálculo do produto de xey é empregada para multiplicar os itens em cada grupo coletivamente. Os produtos resultantes são anexados à lista de produtos. A compreensão da lista [reduce(lambda x, y: x * y, group) ao processar cada grupo] produz uma lista de saídas para todos os grupos válidos no intervalo determinado.

Por último, o método retorna a matriz de saída que consiste nos itens dentro de intervalos aceitáveis na lista de fontes.

Conclusão

Ao compreender esses princípios e metodologias, você agora terá a capacidade de utilizá-los em diferentes situações que exigem filtragem e cálculo do resultado de intervalos válidos usando Python. Ao fazer isso, você pode resolver desafios complicados com eficácia e desenvolver seu código mais robusto e produtivo. O extenso ecossistema de bibliotecas e módulos Python oferece muitos recursos para realizar cálculos idênticos para seus próprios projetos. No entanto, deve ser crucial compreender os princípios fundamentais e algoritmos matemáticos para otimizar o uso destes ativos disponíveis.

Artigos relacionados: