@@ -1275,25 +1275,25 @@ o uso do `*` como opção de formatação.
12751275[role="soapbox-title"]
12761276**A busca por uma soma pythônica**
12771277
1278- Não há((("Soapbox sidebars", "Pythonic sums", id="SSpysum12")))((("Pythonic
1279- sums", id="pysum12"))) uma resposta única para a "O que é pythônico?", da mesma
1280- forma que não há uma resposta única para "O que é belo?". Dizer, como eu mesmo
1281- muitas vezes faço, que significa usar "Python idiomático" não é 100%
1282- satisfatório, porque talvez o que é "idiomático" para você não seja para mim.
1283- Uma coisa eu sei: "idiomático" não significa abusar dos recursos mais obscuros
1284- da linguagem.
1285-
1286- Na https://fpy.li/12-11[Python-list], há uma thread de abril de 2003 chamada
1278+ Na((("Soapbox sidebars", "Pythonic sums",
1279+ id="SSpysum12")))((("Pythonic sums", id="pysum12")))
1280+ https://fpy.li/12-11[Python-list], há uma thread de abril de 2003 chamada
12871281https://fpy.li/12-12[_Pythonic Way to Sum n-th List Element?_] (A forma
12881282pythônica de somar o n-ésimo elemento em listas)].
1289- Ela é relevante para nossa discussão de `reduce` neste capítulo.
1283+
1284+ Não há uma resposta única para a "O que é pythônico?", da mesma
1285+ forma que não há uma resposta única para "O que é belo?"
1286+
1287+ Mas talvez esta troca de ideias traga alguma luz.
12901288
12911289O autor original, Guy Middleton, pediu melhorias para a solução abaixo, afirmando
12921290não gostar de usar `lambda`. Adaptei o código apresentado aqui: em
129312912003, `reduce` era uma função embutida, mas no Python 3 precisamos importá-la;
12941292também substitui os nomes `x` e `y` por `my_list` e `sub` (para sub-lista),
12951293e usei `ac` como variável acumuladora na para o `reduce`.
12961294
1295+ No caso específico, Middleton quer somar o segundo item de cada lista de uma série de listas.
1296+
12971297[source, python]
12981298----
12991299>>> from functools import reduce
@@ -1302,28 +1302,31 @@ e usei `ac` como variável acumuladora na para o `reduce`.
1302130260
13031303----
13041304
1305- Esse código usa muitos idiomas: `lambda`, `reduce` e uma compreensão de lista.
1305+ Esse código usa várias peculiaridades de Python:
1306+ `lambda`, `reduce` e uma compreensão de lista.
13061307Ele provavelmente ficaria em último lugar em um concurso de popularidade, pois
13071308ofende quem odeia `lambda` e também aqueles que desprezam as compreensões de
1308- lista—praticamente os dois lados de uma disputa .
1309+ lista.
13091310
13101311Se você vai usar `lambda`, provavelmente não há razão para usar uma compreensão
1311- de lista—exceto para filtragem , que não é o caso aqui.
1312+ de lista—exceto para filtrar com `if` , que não é o caso aqui.
13121313
1313- Aqui está uma solução minha que agradará os amantes de `lambda`:
1314+ Aqui está uma solução minha que ofenderá todo mundo, exceto os fanáticos por `lambda`:
13141315
13151316[source, python]
13161317----
13171318>>> reduce(lambda ac, sub: ac + sub[1], my_list, 0)
1318131960
13191320----
13201321
1321- Não tomei parte na discussão original, e não usaria o trecho acima em código real,
1322- pois eu também não gosto muito de `lambda`.
1323- Apenas quis mostrar um exemplo sem uma compreensão de lista.
1322+ Não participei da discussão original,
1323+ e não usaria este código porque também não gosto muito de `lambda`,
1324+ principalmente em casos obscuros como este.
1325+ Apenas quis mostrar aqui um exemplo sem uma compreensão de lista.
13241326
1325- A primeira resposta veio de Fernando Perez, criador do IPython, e realça como a
1326- NumPy suporta arrays _n_-dimensionais e fatiamento _n_-dimensional:
1327+ A primeira resposta veio de Fernando Perez, criador do IPython e do Jupyter
1328+ Notebook, mostrando como a NumPy suporta arrays _n_-dimensionais e fatiamento
1329+ _n_-dimensional:
13271330
13281331[source, python]
13291332----
@@ -1333,7 +1336,7 @@ NumPy suporta arrays _n_-dimensionais e fatiamento _n_-dimensional:
1333133660
13341337----
13351338
1336- Acho a solução de Perez boa, mas Guy Middleton elegiou essa próxima solução,
1339+ Acho a solução de Perez boa, mas Guy Middleton elogiou essa próxima solução,
13371340de Paul Rubin e Skip Montanaro:
13381341
13391342[source, python]
0 commit comments