十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
lst = [] #定义一个空列表
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了宁陵免费建站欢迎大家使用!
str = raw_input("请输入数值,用空格隔开:")
lst1 = str.split(" ")#lst1用来存储输入的字符串,用空格分割
i = 0
while i = len(lst1)+1:
lst.append(int(lst1.pop()))#将lst1的数据转换为整型并赋值给lst
i += 1
#print(lst)
def sum(list):
"对列表的数值求和"
s = 0
for x in list:
s += x
return s
def average(list):
"对列表数据求平均值"
avg = 0
avg = sum(list)/(len(list)*1.0) #调用sum函数求和
return avg
print("avg = %f"%average(lst))
扩展资料:
for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值; 也可用来计算其它与for循环无关但先于循环部分处理的一个表达式。
执行的中间循环体可以为一个语句,也可以为多个语句,当中间循环体只有一个语句时,其大括号{}可以省略,执行完中间循环体后接着执行末尾循环体。
执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。
def fun(lst):
a = lst[1] + lst[-1]
return a
lst = range(10) # range(n) returns a list [0, 1, ..., n-1]
print fun(lst)
就像上面的,直接写就好,在定义函数的时候,并不需要指定参数类型,你传进来是什么就是什么,你只需要保证传进来的是list就好了,不然在使用下标的时候,就会报错。
当然,为了保证程序的健壮性,你可以加一个判断,如下:
def fun(lst):
if type(lst) == type([]):
a = lst[1] + lst[-1]
return a
else:
print 'The arg is not a list'
lst = range(10)
print fun(lst)
例如上面的例子,实现一个整形集合的累加。假设lst = [1,2,3,4,5],实现累加的方式有很多:
第一种:用sum函数。
sum(lst)
第二种:循环方式。
def customer_sum(lst):
result = 0
for x in lst:
result+=x
return result
def customer_sum(lst):
result = 0
while lst:
temp = lst.pop(0)
result+=temp
return result
if name ==" main ":
lst = [1,2,3,4,5]
print customer_sum(lst)
第三种:递推求和
def add(lst,result):
if lst:
temp = lst.pop(0)
temp+=result
return add(lst,temp)
else:
return result
if name ==" main ":
lst = [1,2,3,4,5]
print add(lst,0)
第四种:reduce方式
lst = [1,2,3,4,5]
print reduce(lambda x,y:x+y,lst)
lst = [1,2,3,4,5]
print reduce(lambda x,y:x+y,lst,0)
def add(x,y):
return x+y
print reduce(add, lst)
def add(x,y):
return x+y
print reduce(add, lst,0)
有一个序列集合,例如[1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],统计这个集合所有键的重复个数,例如1出现了两次,2出现了两次等。大致的思路就是用字典存储,元素就是字典的key,出现的次数就是字典的value。方法依然很多
第一种:for循环判断
def statistics(lst):
dic = {}
for k in lst:
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print(statistics(lst))
第二种:比较取巧的,先把列表用set方式去重,然后用列表的count方法
def statistics2(lst):
m = set(lst)
dic = {}
for x in m:
dic[x] = lst.count(x)
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print statistics2(lst)
第三种:用reduce方式
def statistics(dic,k):
if not k in dic:
dic[k] = 1
else:
dic[k] +=1
return dic
lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]
print reduce(statistics,lst,{})
或者
d = {}
d.extend(lst)
print reduce(statistics,d)
通过上面的例子发现,凡是要对一个集合进行操作的,并且要有一个统计结果的,能够用循环或者递归方式解决的问题,一般情况下都可以用reduce方式实现。
思路是接收输入的字符串,以空格为分隔符,将分割的数据存入列表(lst1)中,将lst1中的数据转存入另一个空列表(lst)中,转存时将字符串转化为整型,从而利用函数求出lst中数的和、平均值。print("-----求平均值,可输入任意多个数-------")
lst = [] #定义一个空列表
str = raw_input("请输入数值,用空格隔开:")
lst1 = str.split(" ")#lst1用来存储输入的字符串,用空格分割
i = 0
while i = len(lst1)+1:
lst.append(int(lst1.pop()))#将lst1的数据转换为整型并赋值给lst
i += 1
#print(lst)
def sum(list):
"对列表的数值求和"
s = 0
for x in list:
s += x
return s
def average(list):
"对列表数据求平均值"
avg = 0
avg = sum(list)/(len(list)*1.0) #调用sum函数求和
return avg
print("avg = %f"%average(lst))
运行结果:
请输入数值,用空格隔开:21 32 45 65
avg = 47.333333
这是 python 的切片操作。
格式是: lst[start : end : step]
start 表示开始的位置,end表示结束的位置, step 表示步长(每次跳过的元素个数)
lst[3:8:2] 表示 从第4个元素开始,到第9个元素,每隔一个取一个
例如:
lst = "0123456789ABCDEFG"
lst[3:8:2] = "357"