Como Verificar se um Conjunto é um Subconjunto de Outro em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como determinar se um conjunto é um subconjunto de outro em Python. Começará por entender o conceito de subconjuntos e criar dois conjuntos, set1 e set2, para explorar a sua relação. Usando o método issubset(), você escreverá um script Python para verificar se set1 é um subconjunto de set2, observando a saída True ou False com base em se todos os elementos de set1 estão presentes em set2.

O laboratório então se aprofunda no método issubset(), explorando diferentes cenários para solidificar sua compreensão. Você modificará os elementos dos conjuntos e executará o script novamente para observar como a saída muda, reforçando o conceito de subconjuntos e a funcionalidade do método issubset().

Entenda os Subconjuntos

Nesta etapa, você aprenderá sobre subconjuntos em Python. Um subconjunto é um conjunto cujos elementos estão todos contidos em outro conjunto. Entender subconjuntos é crucial para várias tarefas de programação, como validação de dados, filtragem e análise de relacionamentos.

Vamos começar criando dois conjuntos:

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}

Aqui, set1 contém os elementos 1, 2 e 3, enquanto set2 contém os elementos 1, 2, 3, 4 e 5. Queremos determinar se set1 é um subconjunto de set2.

Para fazer isso, você criará um script Python chamado subset_check.py no diretório ~/project usando o editor VS Code. Abra o VS Code e crie um novo arquivo chamado subset_check.py no diretório ~/project.

Agora, adicione o seguinte código a subset_check.py:

set1 = {1, 2, 3}
set2 = {1, 2, 3, 4, 5}

is_subset = set1.issubset(set2)

print(is_subset)

Salve o arquivo.

Em seguida, execute o script usando o comando python no terminal:

python subset_check.py

A saída será:

True

Isso indica que set1 é de fato um subconjunto de set2 porque todos os elementos em set1 também estão presentes em set2.

Agora, vamos considerar outro exemplo onde set1 não é um subconjunto de set2:

Modifique o arquivo subset_check.py para o seguinte:

set1 = {1, 2, 6}
set2 = {1, 2, 3, 4, 5}

is_subset = set1.issubset(set2)

print(is_subset)

Salve o arquivo e execute-o novamente:

python subset_check.py

A saída será:

False

Isso ocorre porque set1 contém o elemento 6, que não está presente em set2. Portanto, set1 não é um subconjunto de set2.

Use o Método issubset()

Na etapa anterior, você aprendeu o conceito básico de subconjuntos e viu um exemplo simples usando o método issubset(). Nesta etapa, exploraremos o método issubset() com mais detalhes, com diferentes cenários.

O método issubset() é um método embutido do Python que você pode usar com conjuntos. Ele retorna True se todos os elementos de um conjunto estiverem presentes em outro conjunto (o conjunto é um subconjunto) e False caso contrário.

Vamos considerar um cenário em que temos dois conjuntos representando habilidades:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

Aqui, skills1 representa as habilidades de um cientista de dados júnior, e skills2 representa as habilidades necessárias para um cientista de dados sênior. Queremos verificar se as habilidades do cientista de dados júnior são um subconjunto das habilidades necessárias para o cientista de dados sênior.

Abra o arquivo subset_check.py no diretório ~/project usando o VS Code. Modifique o conteúdo do arquivo para o seguinte:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1.issubset(skills2)

print(is_subset)

Salve o arquivo.

Agora, execute o script usando o comando python no terminal:

python subset_check.py

A saída será:

True

Isso indica que skills1 é um subconjunto de skills2, o que significa que as habilidades do cientista de dados júnior são um subconjunto das habilidades necessárias do cientista de dados sênior.

Vamos considerar outro cenário em que skills1 não é um subconjunto de skills2:

Modifique o arquivo subset_check.py para o seguinte:

skills1 = {"Python", "Data Analysis", "Cloud Computing"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1.issubset(skills2)

print(is_subset)

Salve o arquivo e execute-o novamente:

python subset_check.py

A saída será:

False

Isso ocorre porque skills1 contém "Cloud Computing", que não está presente em skills2. Portanto, skills1 não é um subconjunto de skills2.

Verifique com o Operador <= (Menor ou Igual)

Na etapa anterior, você aprendeu como usar o método issubset() para verificar se um conjunto é um subconjunto de outro. Nesta etapa, você aprenderá uma maneira alternativa de verificar subconjuntos usando o operador <=.

O operador <= pode ser usado para verificar se um conjunto é um subconjunto de outro. Ele retorna True se o conjunto no lado esquerdo for um subconjunto do conjunto no lado direito e False caso contrário.

Vamos revisitar o exemplo de habilidades da etapa anterior:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

Queremos verificar se skills1 é um subconjunto de skills2 usando o operador <=.

Abra o arquivo subset_check.py no diretório ~/project usando o VS Code. Modifique o conteúdo do arquivo para o seguinte:

skills1 = {"Python", "Data Analysis"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1 <= skills2

print(is_subset)

Salve o arquivo.

Agora, execute o script usando o comando python no terminal:

python subset_check.py

A saída será:

True

Isso indica que skills1 é de fato um subconjunto de skills2.

Vamos considerar outro cenário em que skills1 não é um subconjunto de skills2:

Modifique o arquivo subset_check.py para o seguinte:

skills1 = {"Python", "Data Analysis", "Cloud Computing"}
skills2 = {"Python", "Data Analysis", "Machine Learning", "SQL"}

is_subset = skills1 <= skills2

print(is_subset)

Salve o arquivo e execute-o novamente:

python subset_check.py

A saída será:

False

Isso ocorre porque skills1 contém "Cloud Computing", que não está presente em skills2. Portanto, skills1 não é um subconjunto de skills2.

É importante notar que o operador <= também retorna True se os dois conjuntos forem iguais. Por exemplo:

set1 = {1, 2, 3}
set2 = {1, 2, 3}

is_subset = set1 <= set2

print(is_subset)

A saída será True porque set1 e set2 são iguais. Se você quiser verificar se set1 é um subconjunto próprio de set2 (ou seja, set1 é um subconjunto de set2, mas não é igual a set2), você pode usar o operador < em vez disso.

Resumo

Neste laboratório, você aprendeu como verificar se um conjunto é um subconjunto de outro conjunto em Python. Você começou entendendo o conceito de subconjuntos, onde um conjunto é considerado um subconjunto se todos os seus elementos estiverem contidos em outro conjunto.

Em seguida, você utilizou o método issubset() para determinar se um conjunto é um subconjunto de outro. Ao criar scripts Python e executá-los, você observou como o método issubset() retorna True quando todos os elementos do primeiro conjunto estão presentes no segundo conjunto e False caso contrário.