Como Verificar se uma Lista Contém um Número em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma lista contém um número em Python, com foco no tratamento de listas de tipos mistos. Você começará explorando listas de tipos mistos, que contêm elementos de diferentes tipos de dados, como inteiros, strings e booleanos.

Você criará um arquivo mixed_list.py, o preencherá com uma lista de tipos mistos e praticará o acesso e a modificação de seus elementos usando indexação. Essa experiência prática fornecerá uma base para identificar elementos numéricos dentro dessas listas usando técnicas como any() e isinstance(), que são abordadas nas etapas subsequentes.

Explorar Listas de Tipos Mistos

Nesta etapa, você aprenderá sobre listas de tipos mistos em Python. Uma lista de tipos mistos é uma lista que contém elementos de diferentes tipos de dados, como inteiros, strings e booleanos. Entender como trabalhar com listas de tipos mistos é essencial para lidar com dados diversos em seus programas Python.

Primeiro, vamos criar uma lista de tipos mistos. Abra o editor VS Code no ambiente LabEx e crie um novo arquivo chamado mixed_list.py no diretório ~/project.

## Create a mixed-type list
my_list = [1, "hello", 3.14, True]

## Print the list
print(my_list)

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

python ~/project/mixed_list.py

Você deve ver a seguinte saída:

[1, 'hello', 3.14, True]

Como você pode ver, a lista my_list contém um inteiro, uma string, um float e um valor booleano.

Em seguida, vamos acessar elementos da lista de tipos mistos usando indexação:

## Access elements of the list
first_element = my_list[0]
second_element = my_list[1]
third_element = my_list[2]
fourth_element = my_list[3]

## Print the elements
print("First element:", first_element)
print("Second element:", second_element)
print("Third element:", third_element)
print("Fourth element:", fourth_element)

Adicione essas linhas ao seu arquivo mixed_list.py e salve-o. Em seguida, execute o script novamente:

python ~/project/mixed_list.py

A saída deve ser:

[1, 'hello', 3.14, True]
First element: 1
Second element: hello
Third element: 3.14
Fourth element: True

Você também pode modificar elementos de uma lista de tipos mistos:

## Modify an element
my_list[0] = "new value"

## Print the modified list
print(my_list)

Adicione essas linhas ao seu arquivo mixed_list.py e salve-o. Execute o script mais uma vez:

python ~/project/mixed_list.py

A saída agora deve ser:

['new value', 'hello', 3.14, True]

Neste exemplo, mudamos o primeiro elemento da lista de um inteiro para uma string.

Listas de tipos mistos são flexíveis e podem ser úteis em várias situações. No entanto, é importante estar atento aos tipos de dados ao realizar operações nos elementos de uma lista de tipos mistos para evitar erros inesperados.

Usar any() com isinstance()

Nesta etapa, você aprenderá como usar a função any() em combinação com a função isinstance() para verificar se uma lista contém pelo menos um elemento de um tipo específico. Isso é particularmente útil ao trabalhar com listas de tipos mistos.

A função any() retorna True se qualquer elemento em um iterável (como uma lista) for verdadeiro. Caso contrário, retorna False. A função isinstance() verifica se um objeto é uma instância de uma classe ou tipo especificado.

Vamos criar um script Python para demonstrar isso. No editor VS Code, crie um novo arquivo chamado any_isinstance.py no diretório ~/project.

## Create a mixed-type list
my_list = [1, "hello", 3.14, True]

## Check if the list contains any integers
has_integer = any(isinstance(x, int) for x in my_list)

## Print the result
print("List contains an integer:", has_integer)

## Check if the list contains any strings
has_string = any(isinstance(x, str) for x in my_list)

## Print the result
print("List contains a string:", has_string)

## Check if the list contains any floats
has_float = any(isinstance(x, float) for x in my_list)

## Print the result
print("List contains a float:", has_float)

## Check if the list contains any booleans
has_bool = any(isinstance(x, bool) for x in my_list)

## Print the result
print("List contains a boolean:", has_bool)

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

python ~/project/any_isinstance.py

Você deve ver a seguinte saída:

List contains an integer: True
List contains a string: True
List contains a float: True
List contains a boolean: True

Neste exemplo, usamos uma expressão geradora (isinstance(x, int) for x in my_list) dentro da função any(). Essa expressão geradora produz True se um elemento x é uma instância de int, e False caso contrário. A função any() então verifica se algum desses valores é True.

Vamos modificar a lista para ver como a saída muda. Mude o primeiro elemento de my_list para um float:

## Create a mixed-type list
my_list = [1.0, "hello", 3.14, True]

## Check if the list contains any integers
has_integer = any(isinstance(x, int) for x in my_list)

## Print the result
print("List contains an integer:", has_integer)

## Check if the list contains any strings
has_string = any(isinstance(x, str) for x in my_list)

## Print the result
print("List contains a string:", has_string)

## Check if the list contains any floats
has_float = any(isinstance(x, float) for x in my_list)

## Print the result
print("List contains a float:", has_float)

## Check if the list contains any booleans
has_bool = any(isinstance(x, bool) for x in my_list)

## Print the result
print("List contains a boolean:", has_bool)

Salve o arquivo e execute-o novamente:

python ~/project/any_isinstance.py

A saída agora deve ser:

List contains an integer: False
List contains a string: True
List contains a float: True
List contains a boolean: True

Agora, a lista não contém nenhum inteiro, então has_integer é False.

Essa técnica é útil para validar o conteúdo de uma lista ou para realizar diferentes ações com base nos tipos de elementos presentes na lista.

Encontrar Elementos Numéricos

Nesta etapa, você aprenderá como encontrar e extrair elementos numéricos (inteiros e floats) de uma lista de tipos mistos. Isso envolve iterar pela lista e usar a função isinstance() para identificar elementos numéricos.

Vamos criar um script Python para demonstrar isso. No editor VS Code, crie um novo arquivo chamado find_numeric.py no diretório ~/project.

## Create a mixed-type list
my_list = [1, "hello", 3.14, True, 5, "world", 2.71]

## Create an empty list to store numeric elements
numeric_elements = []

## Iterate through the list
for element in my_list:
    ## Check if the element is an integer or a float
    if isinstance(element, (int, float)):
        ## Add the element to the numeric_elements list
        numeric_elements.append(element)

## Print the list of numeric elements
print("Numeric elements:", numeric_elements)

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

python ~/project/find_numeric.py

Você deve ver a seguinte saída:

Numeric elements: [1, 3.14, 5, 2.71]

Neste exemplo, iteramos pela my_list e usamos isinstance(element, (int, float)) para verificar se cada elemento é um inteiro ou um float. Se for, adicionamos à lista numeric_elements.

Vamos modificar o script para também imprimir a soma dos elementos numéricos:

## Create a mixed-type list
my_list = [1, "hello", 3.14, True, 5, "world", 2.71]

## Create an empty list to store numeric elements
numeric_elements = []

## Iterate through the list
for element in my_list:
    ## Check if the element is an integer or a float
    if isinstance(element, (int, float)):
        ## Add the element to the numeric_elements list
        numeric_elements.append(element)

## Print the list of numeric elements
print("Numeric elements:", numeric_elements)

## Calculate the sum of the numeric elements
numeric_sum = sum(numeric_elements)

## Print the sum
print("Sum of numeric elements:", numeric_sum)

Salve o arquivo e execute-o novamente:

python ~/project/find_numeric.py

A saída agora deve ser:

Numeric elements: [1, 3.14, 5, 2.71]
Sum of numeric elements: 11.85

Isso demonstra como extrair tipos específicos de elementos de uma lista de tipos mistos e realizar operações neles. Essa técnica é útil para tarefas de limpeza e pré-processamento de dados.

Resumo

Neste laboratório, você explorou listas de tipos mistos em Python, que podem conter elementos de diferentes tipos de dados, como inteiros, strings, floats e booleanos. Você aprendeu como criar essas listas, acessar seus elementos usando indexação e modificar elementos dentro da lista.

O laboratório demonstrou como imprimir a lista inteira e elementos individuais, mostrando a capacidade de lidar com diversos tipos de dados dentro de uma única estrutura de lista. Você também praticou a alteração do valor de um elemento em um índice específico, ilustrando ainda mais a flexibilidade das listas de tipos mistos em Python.