在python中通过这个奇怪的操作得到更小的列表?

2024-10-04 11:32:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有list1和一个叫做n的因子。现在,我做了一个奇怪的操作,根据因子n(>;1)从list1返回list2。举个例子:

list1=[1,2,3,4,5,6,7,8,9,10]
n=2
list2=[3,7,11,15,19]

注意list2是通过将相邻的数字。另一个例如:

list1=[1,2,3,4,5,6,7,8,9,10]
n=2.5
list2=[4.5,10.5,17,23]

在这种情况下:n=2.5。所以list2中的第一个元素=list1[0]+list1[1]+0.5*list1[2],第二个元素是0.5*list1[2]+list1[3]+list1[4],依此类推。len(list2)=ceil(len(list1)/n)

我可以通过递归地应用我编写的以下函数来实现n=2、4、8等。你知道吗

def (list1,n):
list2len=ceil(len(list1)/n)
      tmparr=np.empty(list2len,dtype=float)
      for i in range(0, list2len) :
         j=2*i
         tmparr[i]=Filter[j]+Filter[j+1]
      list2=np.empty(list2len,dtype=float)
      np.copyto(list2,tmparr)

但是,我不知道如何在python中为n~=2^m编写代码。有什么帮助吗?你知道吗


Tags: gt元素lennpfloatfilter因子例子