-
Notifications
You must be signed in to change notification settings - Fork 0
/
list_comprehensions.py
139 lines (78 loc) · 2.62 KB
/
list_comprehensions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
"""
List Comprehensions (LC)
- Utilizando List Comprehensions nós podemos gerar novas listas com dados processados a partir de
outro iterável.
# Sintaxe de LC
[ dado for dado in iterável ]
numeros = [1, 2, 3, 4, 5, 6]
res = [numero * 10 for numero in numeros]
print(res)
Para entender melhor o que está acontecendo devemos dividir a expressão em duas partes:
- A primeira parte: for numero in numeros
- A segunda parte :numero * 10
res = [numero / 2 for numero in numeros]
print(res)
def quadrado(valor):
return valor * valor
res = [quadrado(numero) for numero in numeros]
print(res)
# LC versus Loop
# Loop
numeros = [1, 2, 3, 6, 8]
numeros_dobrados = []
for numero in numeros:
res = numero * 2
numeros_dobrados.append(res)
print(numeros_dobrados)
# List Comprehenions
print([numero * 2 for numero in numeros])
# Outros exemplos:
# 1
nome = 'Heloisa Ferreira'
print([letra.upper() for letra in nome])
# 2
def caixa_alta(nome):
nome = nome.replace(nome[0], nome[0].upper())
return nome
amigos = ['marte', 'breno', 'renan', 'olivia', 'pamela']
print([caixa_alta(amigo) for amigo in amigos])
# 3
print([(numero * 3) / 10 for numero in range(1, 10+1)])
# 4
print([bool(valor) for valor in [' ', [], 'a', 2, 2.5, 2*10]])
# 5
print([str(numero) for numero in range(1, 5+1)])
Parte 2 - List Comprehensions
Nós podemos adicionar estruturas condicionais lógicas as nossas List Comprehensions
# Exemplo 1:
numeros = [1, 2, 3, 4, 5, 6]
pares = [numero for numero in numeros if numero % 2 == 0]
print(pares)
impares = [numero for numero in numeros if numero % 2 == 1]
print(impares)
# Refatorando
# Qualquer número que for par módulo de 2 é 0 e 0 em Pyhton é False. not False = True
pares = [numero for numero in numeros if not numero % 2]
# Qualquer número ímpar módulo 2 é 1, e 1 em Python é True
impares = [numero for numero in numeros if numero % 2 == 1]
print(pares)
print(impares)
# Exemplo 2:
res = [numero * 2 if numero % 2 == 0 else numero / 2 for numero in numeros]
print(res)# Exemplo 1:
numeros = [1, 2, 3, 4, 5, 6]
pares = [numero for numero in numeros if numero % 2 == 0]
print(pares)
impares = [numero for numero in numeros if numero % 2 == 1]
print(impares)
# Refatorando
# Qualquer número que for par módulo de 2 é 0 e 0 em Pyhton é False. not False = True
pares = [numero for numero in numeros if not numero % 2]
# Qualquer número ímpar módulo 2 é 1, e 1 em Python é True
impares = [numero for numero in numeros if numero % 2 == 1]
print(pares)
print(impares)
# Exemplo 2:
res = [numero * 2 if numero % 2 == 0 else numero / 2 for numero in numeros]
print(res)
"""