[英]separate list into smaller list and go through each smaller list python
[英]Getting smaller list through this weird operation in 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編寫代碼。 有什么幫助嗎?
這是一種方法:
list1=[1,2,3,4,5,6,7,8,9,10]
n = 2.5
list2 = []
s = 0
f = n
for x in list1:
s += x*min(f, 1.)
f -= 1
if f <= 0:
list2.append(s)
s = x*-f
f += n
print list2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.