我試圖做一個函數,將基於一個模式根據另一個列表的長度作出清單。由於模式的性質,我不確定如何做到這一點。我試圖做類似的東西會像:使用一個模式作出清單
len(a_list) = 50
created_pattern_a_list = [1,2,4,8,10,20,40]
len(b_list) = 9000
created_patten_b_list = [1,2,4,8,10,20,40,80,100,200,400,800,1000,2000,4000,8000]
所以我想的模式是1,2,4,8,10,...。所以它是指數,但只有直到它在下一個10的功率,然後以10的功率重新開始。我不確定如何做一個可以做到這一點的功能。例如:
def create_patten_list(a_list):
reff_list = [1,2,4,8,10,20,40,80,100,200,400,800,1000,2000,4000,8000,10000]
corr_list = [a for a in reff_list if a <= len(a_list)]
return corr_list
但是,a_list的長度可能比10000長很多,所以我不能只使用這樣的設置長度的默認列表。有沒有更好的方法來設置這樣的模式?