usar range(len(a)) ao invés de enumerate | |
---|---|
Com smell | Sem smell |
names = ["a", "b", "c"]
for i in range(len(names)):
print(f'The name is {names[i]} and the index is {i}') |
names = ["a", "b", "c"]
for i, name in enumerate(names):
print(f'The name is {name} and the index is {i}') |
Usar list comprehensions para alterar estados, mas sem alterar a própria lista | |
funcionarios = ['joão', 'josé', 'marcos']
[s.pagar(i) for i in funcionarios] |
funcionarios = ['joão', 'josé', 'marcos']
map(s.pagar, funcionarios) Ou usar loop, caso map não seja aplicável funcionarios = [joão, josé, marcos]
for funcionario in funcionarios:
funcionario.pagar() |
List comprehension aninhadas | |
list = [[1,2,3],[-1,-5,6]]
flatten = [item
for sublist in list
for item in sublist
if item > 0] |
flatten = []
for rows in list:
for sublist in rows:
if len(sublist) > 0:
flatten.append(sublist) |
Gerar list comprehensions sem L-value (ou seja, uma lista que você não vai usar) | |
values = [1,2,3,4,5,6]
[do_something(val) for val in values] |
values = [1,2,3,4,5,6]
for val in values:
do_something(val) Ou usar map, para ser mais pythonic: values = [1,2,3,4,5,6]
map(do_something,values) |
Long param list (kwargs é moda aqui) | |
def deslocar(self,x,y,z,velocidade,sentido,angulo):
self.foo(x,y,z,velocidade)
self.bar(velocidade,sentido)
self.foobar(sentido,rotacao) |
def deslocar(self,coords,velocidade,direcao):
self.foo(coords,velocidade)
self.bar(velocidade,direcao.sentido)
self.foobar(direcao) |
Usar loops em dataframes | |
df = pd.read_csv('alunos.csv')
df
| nome | nota |
|-------|------|
| João | 10 |
| José | 6 |
| Maria | 3 |
aprovacoes = []
for i in range(0,len(df)):
ta_aprovado = df.iloc[i]['notas'] >= 7
aprovacoes.append(ta_aprovado)
df['aprovado'] = aprovacoes
df
| nome | nota | aprovado |
|-------|------|----------|
| João | 10 | True |
| José | 6 | False |
| Maria | 3 | False | |
df = pd.read_csv('alunos.csv')
aprovacoes = []
for _, row in df.iterrows():
ta_aprovado = row['notas'] >= 7
aprovacoes.append(ta_aprovado)
df['aprovado'] = aprovacoes Ainda melhor: df['notas'] = df.apply(lambda row: row['notas'] >= 7,axis='columns') |
Created
February 17, 2021 05:51
-
-
Save NaelsonDouglas/b4b45b493efb12e94d7f23160bfd4872 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment