关于python数组计算问题
本帖最后由 高义校长 于 2020-4-2 16:35 编辑有下面3个列表:
a=
b=
c=]
请问用代码如何写才能达到下面的结果。
(1)列表c所有元素求和,得到一个整数21。
(2)列表a和b对应元素相加,得到这样一个列表 问题呢??? 永恒的蓝色梦想 发表于 2020-4-2 16:30
问题呢???
不好意思,发太快,就是想问如何实现。 高义校长 发表于 2020-4-2 16:31
不好意思,发太快,就是想问如何实现。
问题1def func1(array):
sum=0
for i in array:
if type(i) is list:
sum+=func1(i)
else:
sum+=i
return sum 高义校长 发表于 2020-4-2 16:31
不好意思,发太快,就是想问如何实现。
问题2from itertools import zip_longest
def func2(*arrays):
return 永恒的蓝色梦想 发表于 2020-4-2 16:39
问题2
非常感谢您。我是一个新手,以前会一点简单的VBA。
您这个是引入新的模块。
请教一下,python是否有数组下标类似的概念:
如:cr(i)=ar(i)+br(i)。 高义校长 发表于 2020-4-2 16:46
非常感谢您。我是一个新手,以前会一点简单的VBA。
您这个是引入新的模块。
请教一下,python是否有数 ...
有,比如有这样一个列表a=,a就可以访问到第5个值,也就是5 永恒的蓝色梦想 发表于 2020-4-2 16:47
有,比如有这样一个列表,就可以访问到第5个值,也就是
那第二个问题是不是可以直接相加。但我这边就提示索引越界了。 高义校长 发表于 2020-4-2 16:50
那第二个问题是不是可以直接相加。但我这边就提示索引越界了。
不能,两个数组不一样长,直接加肯定越界
给你一个不导入模块的版本def func2(*its):
its=map(iter,its)
temp=[]
while True:
sum=0
flag=True
for i in its:
try:
sum+=next(i)
flag=False
except StopIteration:
pass
if flag:
return temp
temp.append(sum) 永恒的蓝色梦想 发表于 2020-4-2 16:53
不能,两个数组不一样长,直接加肯定越界
给你一个不导入模块的版本
感谢感谢,我还得消化一下。如果出现了3维或以上,是不是比较麻烦。 高义校长 发表于 2020-4-2 16:55
感谢感谢,我还得消化一下。如果出现了3维或以上,是不是比较麻烦。
递归 就是应对这种问题的,感兴趣可以搜索一下 永恒的蓝色梦想 发表于 2020-4-2 16:59
递归 就是应对这种问题的,感兴趣可以搜索一下
前面那个单纯的一维列表我研究出来了,但二级及以上我就研究不清楚了,求助。
第一个问题:
数组所有元素求和:
a=]]
def sm(x):
return sum(i in x if isinstance(i,int) else sm(i) for i in x)
print(sm(a))
第二个问题就不行了,为什么我第二个问题会报错呢。
a=[,,,5]
b=[,,,5,6]
from itertools import zip_longest
class Arsum:
def __init__(self,m,n):
self.m=m
self.n=n
def getlst(self):
return
c=Arsum(a,b)
c.getlst() 有没有大佬再帮忙看一下,怎么计算。 高义校长 发表于 2020-4-4 20:35
前面那个单纯的一维列表我研究出来了,但二级及以上我就研究不清楚了,求助。
第一个问题:
数组所有元 ...
不报错就奇怪了,sum的列表里既有list还有int
还有,没事用什么类from itertools import zip_longest
def flatten(iterable,/):
for element in iterable:
if hasattr(element,'__iter__'):
yield from flatten(element)
else:
yield element
def Arsum(*v):
return
a=[,,,5]
b=[,,,5,6]
print(Arsum(a,b))PS:提问新内容记得开新帖, 永恒的蓝色梦想 发表于 2020-4-4 22:51
不报错就奇怪了,sum的列表里既有list还有int
还有,没事用什么类PS:提问新内容记得开新帖,
非常感谢。
页:
[1]