"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Uma maneira elegante e simples de usar listas Python: compreensões de listas

Uma maneira elegante e simples de usar listas Python: compreensões de listas

Publicado em 2024-11-08
Navegar:536

An elegant and simple way to use Python Lists: List Comprehensions

Você pode pensar que Compreensão de lista é um conceito avançado. No entanto, ele pode simplificar seu código com apenas uma linha em situações complicadas. É hora de entender como isso funciona. Vou explicar isso para um nível iniciante com exemplos.

O que exatamente é compreensão de lista?

Você frequentemente vê a notação l2 = [x 1 for x in l]. Diz-se que é igual a isto:

l2 = []
for x in l:
    x = x   1
l2.append(x)

Para ambos os casos, se começarmos com l = [10, 100, 1000], l2 será:

[11, 101, 1001]

A primeira sintaxe é o que chamamos de compreensão de lista.
Você pode preferir o loop for usual, mas ao final deste artigo, prometo que você estará confiante ao usar a compreensão de lista!

Além disso, vamos verificar a definição oficial detalhada na documentação https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

As compreensões de lista fornecem uma maneira concisa de criar listas. As aplicações comuns são fazer novas listas onde cada elemento é o resultado de algumas operações aplicadas a cada membro de outra sequência ou iterável, ou criar uma subsequência desses elementos que satisfaçam uma determinada condição.

Vamos detalhar mais. A compreensão de lista é apenas uma maneira diferente de escrever código, mais curta e mais fácil de criar uma nova lista. O resultado da compreensão da lista é uma lista, e é por isso que a atribuímos a uma lista.
Vejamos a segunda parte da definição, que discute exemplos comuns. Isso deve ser feito usando exemplos específicos.
1.

fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
uppercase_fast_foods = [food.upper() for food in fast_foods]

Depois disso, uppercase_fast_foods será:

['BURGER', 'PIZZA', 'TACOS', 'FRIED CHICKEN', 'HOT DOG']

Usamos a função upper() para alterar cada item alimentar de nossa lista para letras maiúsculas. Como resultado, todos os itens agora estão em letras maiúsculas. É assim que 'criamos novas listas onde cada elemento é o resultado de algumas operações aplicadas a cada membro de outra sequência ou iterável'.
2.

fast_foods = ["Hambúrguer", "Pizza", "Tacos", "Frango Frito", "Cachorro-quente"] foods_with_space = [comida por comida em fast_foods se " " em comida]
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
foods_with_space = [food for food in fast_foods if " " in food]
Depois disso,foods_with_space será:


['Frango Frito', 'Cachorro-quente']
fast_foods = ["Burger", "Pizza", "Tacos", "Fried Chicken", "Hot Dog"]
foods_with_space = [food for food in fast_foods if " " in food]
A linha de código acima recupera os itens da lista que contêm um caractere de espaço em branco. É assim que 'criamos novas listas onde cada elemento é o resultado de algumas operações aplicadas a cada membro de outra sequência ou iterável'.

Exemplos de compreensão de lista

Eu usei compreensões de lista em muitos problemas porque sempre que encontrava muitos loops for, pensava: 'Não tem problema, vou apenas simplificá-los.' Acontece que é a mesma lógica, só que mais limpa! ?

Sem mais delongas, aqui estão alguns dos exemplos mais relevantes que encontrei:


1. Modifique cada elemento da lista

foods = ["Hambúrguer", "Batatas fritas", "Frango frito", "Cachorro-quente", "Pizza"] foods_with_version = [food '- 2024' para alimentos em alimentos] imprimir(comida_com_versão)

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food   ' - 2024' for food in foods]
print(foods_with_version)


['Hambúrguer - 2024', 'Batatas fritas - 2024', 'Frango frito - 2024', 'Cachorro-quente - 2024', 'Pizza - 2024']

['Burger - 2024', 'Fries - 2024', 'Fried Chicken - 2024', 'Hot Dog - 2024', 'Pizza - 2024']

2. Faça uma sublista de uma lista com base em uma condição

foods = ["Hambúrguer", "Frango Frito", "Cachorro-Quente", "Batatas Fritas", "Pizza"] long_foods = [comida por comida em alimentos se len(comida) > 7] imprimir(long_foods)

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food   ' - 2024' for food in foods]
print(foods_with_version)


['Frango Frito']`

['Fried Chicken']`

3. Use a função range com compreensão de lista para criar uma lista

x = [i para i no intervalo(10, 20, 2)] imprimir (x)

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food   ' - 2024' for food in foods]
print(foods_with_version)


[10, 12, 14, 16, 18]

[10, 12, 14, 16, 18]

4. Aplicar compreensão de lista a uma string

input_string = "olá mundo" marked_vowels = ['*' if char in 'aeiouAEIOU' else char for char in input_string] imprimir(vogais_marcadas)

foods = ["Burger", "Fries", "Fried Chicken", "Hot Dog", "Pizza"]
foods_with_version = [food   ' - 2024' for food in foods]
print(foods_with_version)


['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']

['h', '*', 'l', 'l', '*', ' ', 'w', 'o', 'r', 'l', 'd']

Conclusão

Ao longo deste artigo, abordei todos os insights básicos sobre a compreensão de listas, desde a definição até vários exemplos que os explicam melhor. Espero que tudo esteja claro e que você se sinta mais motivado para incorporar compreensões de listas em seu código Python de agora em diante!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/mariem_sghaier/an-elegant-and-simple-way-to-use-python-lists-list-comprehensions-584j?1 Se houver alguma violação, entre em contato com study_golang @163.com excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3