Mais
Soma uma lista de números em Python
Eu tenho uma lista de números como [1,2,3,4,5...]
, e quero calcular (1+2)/2
e para o segundo, (2+3)/2
e para o terceiro,
(3+4)/2
, e assim por diante. Como posso fazer isso?
Eu gostaria de somar o primeiro número com o segundo e dividi-lo por 2, depois somar o segundo com o terceiro e dividir por 2, e assim por diante.
Além disso, como posso somar uma lista de números?
a = [1, 2, 3, 4, 5, ...]
É isso:
b = sum(a)
print b
para conseguir um número?
Isto não'não funciona para mim.
342
3
Pergunta 1: Então você quer (elemento 0 + elemento 1) / 2, (elemento 1 + elemento 2) / 2, ... etc.
Fazemos duas listas: uma de cada elemento, exceto o primeiro, e uma de cada elemento, exceto o último. Depois as médias que queremos são as médias de cada par tiradas das duas listas. Utilizamos o `zip' para tirar pares de duas listas.
Presumo que você queira ver decimais no resultado, mesmo que seus valores de entrada sejam números inteiros. Por padrão, Python faz divisão inteira: ele descarta o resto. Para dividir as coisas por todo o caminho, precisamos de usar números de ponto flutuante. Felizmente, dividir uma int por uma float produzirá uma float, então nós apenas utilizamos
2.0
para o nosso divisor ao invés de2
.Assim:
Pergunta 2:
Essa utilização de "soma" deve funcionar bem. Os seguintes trabalhos:
Além disso, você não'não precisa atribuir tudo a uma variável em cada etapa do caminho. A 'print sum(a)` funciona muito bem.
Você terá que ser mais específico sobre exatamente o que você escreveu e como é't funcionando.
Lista de números de soma:
Calculando metade de n e n - 1 (se eu tiver o padrão correto), usando uma compreensão de lista:
Soma de elementos adjacentes, por exemplo ((1 + 2) / 2) + ((2 + 3) / 2) + ... usando reduzir e lambdas
Tente usar a compreensão de uma lista. Algo do género: