python如何求一个列表里所有数字的和_在Python中汇总一个数字列表

news/2024/7/6 1:40:32

我有一个数字列表,如[1,2,3,4,5...] ,我想计算(1+2)/2和第二, (2+3)/2和第三, (3+4)/2 ,依此类推。 我怎样才能做到这一点?

我想将第一个数字与第二个数字相加并除以2,然后将第二个数字与第三个相加并除以2,依此类推。

另外,我如何总结一个数字列表?

a = [1, 2, 3, 4, 5, ...]

是吗:

b = sum(a)

print b

得到一个号码?

这对我不起作用。

#1楼

我只使用带有map()的lambda

a = [1,2,3,4,5,6,7,8,9,10]

b = map(lambda x, y: (x+y)/2.0, fib[:-1], fib[1:])

print b

#2楼

>>> a = range(10)

>>> sum(a)

Traceback (most recent call last):

File "", line 1, in

TypeError: 'int' object is not callable

>>> del sum

>>> sum(a)

45

似乎已在代码中定义了sum并覆盖了默认函数。 所以我删除了它,问题解决了。

#3楼

n = int(input("Enter the length of array: "))

list1 = []

for i in range(n):

list1.append(int(input("Enter numbers: ")))

print("User inputs are", list1)

list2 = []

for j in range(0, n-1):

list2.append((list1[j]+list1[j+1])/2)

print("result = ", list2)

#4楼

所有答案确实显示了程序化和一般方法。 我建议采用针对您的情况的数学方法。 对于长列表,它可以更快。 它的工作原理是因为你的列表是一个最多为n的自然数列表:

假设我们有自然数1, 2, 3, ..., 10 :

>>> nat_seq = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

您可以在列表中使用sum函数:

>>> print sum(nat_seq)

55

您还可以使用公式n*(n+1)/2 ,其中n是列表中最后一个元素的值(此处为: nat_seq[-1] ),因此您可以避免迭代元素:

>>> print (nat_seq[-1]*(nat_seq[-1]+1))/2

55

要生成序列(1+2)/2, (2+3)/2, ..., (9+10)/2您可以使用生成器和公式(2*k-1)/2. (注意点使值浮点)。 生成新列表时必须跳过第一个元素:

>>> new_seq = [(2*k-1)/2. for k in nat_seq[1:]]

>>> print new_seq

[1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5]

在这里,您也可以使用该列表中的sum函数:

>>> print sum(new_seq)

49.5

但你也可以使用公式(((n*2+1)/2)**2-1)/2 ,这样你就可以避免迭代元素:

>>> print (((new_seq[-1]*2+1)/2)**2-1)/2

49.5

#5楼

使用简单的list-comprehension和sum :

>> sum(i for i in range(x))/2. #if x = 10 the result will be 22.5


http://www.niftyadmin.cn/n/3484853.html

相关文章

vue知识掌握(一)

vue项目的搭建 本文章主要讲述vue项目的搭建,在搭建vue项目前需要准备一些材料。 1.node安装 npm:在你安装node的时候一般node已经自带了npm,所以忽略。 webpack:npm install webpack -g 检验安装是否成功的办法: 检验…

java 包装类方法总结_Java基础教程:Java包装类概念及应用

概述Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应…

Spring Bean 初始化过程

Life类 Java代码 package com.open.bean; import org.springframework.beans.BeansException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory…

java处理分析经济学_什么?程序员还要了解经济学?!

【编者按】本文作者为常年混迹于 SitePoint JavaScript 论坛的 Web 开发者 James Hibbard,主要介绍针对开发新手提出了一些学习建议。文章系国内 ITOM 管理平台 OneAPM 编译呈现。在近期的一次采访中, StackOverflow联合创始人Joel Spolsky建议&#xff…

密码学在区块链中能做什么

2019独角兽企业重金招聘Python工程师标准>>> 介绍 本篇会讲述密码学在区块链中的具体的使用,从而理解为什么区块链可以防止消息被篡改,怎么进行数字身份认证。比特币中是如何通过多重签名实现多个人共同管理某个账户的比特币交易。 布隆过滤器…

php隐藏域,php隐藏域是什么

php隐藏域是用来收集或发送信息的不可见元素,对于页面的访问者来说,隐藏域是不可见的。当表单被提交时,隐藏域便会将信息用设置时定义的名称和值发送到服务器上。隐藏域:隐藏域是用来收集或发送信息的不可见元素,对于网…

SpringMVC+FreeMarker实现半自动静态化

感谢imyourgod的原贴http://topic.csdn.net/u/20090613/12/30302a5d-33c0-4ce4-b9e3-cd503dbafac1.html这里对freemarker的代码进行了修改,效果:1,请求.do的URL时直接生成对应的.htm文件,并将请求转发到该htm文件2,自由控制某个页面是否需要静态化原理:对…

AI从业者需要应用的10种深度学习方法(下)

6-批量归一化 当然,包括深度网络在内的神经网络需要仔细调整权重初始化和学习参数。批量归一化有助于让中国过程更简单一点。 权重问题: 无论那种权重的初始化,随机还是凭经验选择,它们都和学习权重差别很大。考虑一个小批…