Como Verificar se um Conjunto Contém Apenas Strings em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se um conjunto em Python contém apenas strings. Começaremos explorando os fundamentos dos conjuntos de strings, incluindo sua criação, a unicidade dos elementos e operações comuns de conjuntos como união e interseção. Você criará um arquivo string_sets.py no diretório ~/project e usará o comando python para executar os trechos de código, observando como os conjuntos lidam com entradas duplicadas e realizam operações de conjuntos.

O laboratório o guiará então através do uso da função all() com isinstance() para verificar se todos os elementos dentro de um conjunto são de fato strings. Finalmente, você aprenderá como lidar com conjuntos vazios e garantir que seu código gerencie graciosamente este caso limite ao verificar conjuntos que contêm apenas strings.

Aprenda Sobre Conjuntos de Strings

Nesta etapa, você aprenderá sobre conjuntos de strings em Python. Um conjunto (set) é uma coleção não ordenada de elementos únicos. Isso significa que um conjunto não pode conter valores duplicados. Os conjuntos são úteis para realizar operações matemáticas de conjuntos como união, interseção e diferença. Neste laboratório, focaremos em conjuntos contendo strings.

Primeiro, vamos criar um conjunto simples de strings. Abra o editor VS Code no ambiente LabEx. Crie um novo arquivo chamado string_sets.py no diretório ~/project.

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry"}
print(string_set)

Salve o arquivo. Agora, execute o script usando o comando python no terminal:

python ~/project/string_sets.py

Você deve ver a seguinte saída (a ordem dos elementos pode variar porque os conjuntos são não ordenados):

{'cherry', 'banana', 'apple'}

Agora, vamos adicionar um elemento duplicado ao conjunto e ver o que acontece:

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry", "apple"}
print(string_set)

Salve o arquivo e execute-o novamente:

python ~/project/string_sets.py

A saída será:

{'cherry', 'banana', 'apple'}

Observe que o "apple" duplicado foi removido automaticamente. Os conjuntos armazenam apenas elementos únicos.

Em seguida, vamos explorar algumas operações comuns de conjuntos. Criaremos dois conjuntos e realizaremos operações de união e interseção.

## ~/project/string_sets.py
set1 = {"apple", "banana", "cherry"}
set2 = {"banana", "date", "fig"}

## União de dois conjuntos
union_set = set1.union(set2)
print("União:", union_set)

## Interseção de dois conjuntos
intersection_set = set1.intersection(set2)
print("Interseção:", intersection_set)

Salve o arquivo e execute-o:

python ~/project/string_sets.py

A saída será:

União: {'cherry', 'banana', 'date', 'apple', 'fig'}
Interseção: {'banana'}

A união dos dois conjuntos contém todos os elementos únicos de ambos os conjuntos. A interseção contém apenas os elementos que são comuns a ambos os conjuntos.

Aplique all() com isinstance()

Nesta etapa, você aprenderá como usar a função all() em combinação com isinstance() para verificar se todos os elementos em um conjunto são strings.

A função all() retorna True se todos os elementos em um iterável (como um conjunto) forem verdadeiros. Se algum elemento for falso, all() retorna False.

A função isinstance() verifica se um objeto é uma instância de uma classe específica. Em nosso caso, usaremos para verificar se cada elemento no conjunto é uma string.

Vamos começar criando um conjunto contendo apenas strings. Abra o arquivo string_sets.py no diretório ~/project usando o editor VS Code. Modifique o arquivo para incluir o seguinte código:

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry"}

## Verificar se todos os elementos são strings
all_strings = all(isinstance(item, str) for item in string_set)
print("Todos os elementos são strings?", all_strings)

Salve o arquivo. Agora, execute o script usando o comando python no terminal:

python ~/project/string_sets.py

Você deve ver a seguinte saída:

Todos os elementos são strings? True

Isso confirma que todos os elementos no conjunto são strings.

Agora, vamos adicionar um elemento que não é string (por exemplo, um inteiro) ao conjunto e ver o que acontece:

## ~/project/string_sets.py
string_set = {"apple", "banana", "cherry", 123}

## Verificar se todos os elementos são strings
all_strings = all(isinstance(item, str) for item in string_set)
print("Todos os elementos são strings?", all_strings)

Salve o arquivo e execute-o novamente:

python ~/project/string_sets.py

A saída será:

Todos os elementos são strings? False

Como esperado, a função all() retorna False porque nem todos os elementos no conjunto são strings.

Esta técnica é útil para validar dados e garantir que um conjunto contenha apenas elementos de um tipo específico.

Verificar Conjuntos Vazios

Nesta etapa, você aprenderá como verificar se um conjunto está vazio em Python. Um conjunto vazio é um conjunto que não contém elementos.

Verificar conjuntos vazios é uma tarefa comum em programação, especialmente ao lidar com processamento de dados ou lógica condicional.

Para criar um conjunto vazio, você pode usar o construtor set() sem nenhum argumento. Vamos modificar o arquivo string_sets.py no diretório ~/project usando o editor VS Code para incluir o seguinte código:

## ~/project/string_sets.py
empty_set = set()

## Verificar se o conjunto está vazio
if not empty_set:
    print("O conjunto está vazio")
else:
    print("O conjunto não está vazio")

Salve o arquivo. Agora, execute o script usando o comando python no terminal:

python ~/project/string_sets.py

Você deve ver a seguinte saída:

O conjunto está vazio

Isso confirma que o conjunto empty_set está realmente vazio.

Agora, vamos criar um conjunto não vazio e verificar se nossa lógica ainda funciona:

## ~/project/string_sets.py
non_empty_set = {"apple", "banana", "cherry"}

## Verificar se o conjunto está vazio
if not non_empty_set:
    print("O conjunto está vazio")
else:
    print("O conjunto não está vazio")

Salve o arquivo e execute-o novamente:

python ~/project/string_sets.py

A saída será:

O conjunto não está vazio

Como esperado, o código identifica corretamente que o conjunto não está vazio.

Outra maneira de verificar se um conjunto está vazio é usar a função len(), que retorna o número de elementos no conjunto. Se o comprimento for 0, o conjunto está vazio.

## ~/project/string_sets.py
empty_set = set()

## Verificar se o conjunto está vazio usando len()
if len(empty_set) == 0:
    print("O conjunto está vazio")
else:
    print("O conjunto não está vazio")

Salve o arquivo e execute-o:

python ~/project/string_sets.py

A saída será:

O conjunto está vazio

Isso demonstra um método alternativo para verificar se um conjunto está vazio.

Resumo

Neste laboratório, você aprendeu sobre conjuntos de strings em Python, que são coleções não ordenadas de elementos únicos. Você criou um conjunto de strings, observou que elementos duplicados são removidos automaticamente e explorou operações comuns de conjuntos como união e interseção. O laboratório demonstrou como definir conjuntos de strings e realizar operações básicas para entender seu comportamento e características.

O laboratório também abordou como criar um script Python, salvá-lo no diretório ~/project e executá-lo usando o comando python no terminal. Você observou a saída das operações de conjuntos, notando que a ordem dos elementos pode variar devido à natureza não ordenada dos conjuntos.