按固定元素數目分割陣列 perl,python

2022-04-10 09:20:23 字數 1571 閱讀 2029

要求:把40個元素的陣列,按每行8個,分5行列印出來。如下圖

1 2 3 4 5 6 7 8

9 10 11 12 13 14 15 16

17 18 19 20 21 22 23 24

25 26 27 28 29 30 31 32

33 34 35 36 37 38 39 40

起因:遇到一些處理資料檔案的場景,比如每8行求一次平均值,最大值,或者別的什麼操作,可以先抽象為每8行列印到乙個陣列裡,然後直接對該陣列處理

1

#!/usr/bin/perl -w

2use

strict;34

my@data = 1..40;5

6my$window = 8;7

8for

my$loop(0..(@data/$window)-1)9

15print

join("

\t", @tmp), "\n"

;16 }

分析:原理很簡單,找到索引的規律,就是了,只是每次不能快速的想起來,特此記錄一下。關鍵是用line8, line13, 找到索引的正確公式。

0+8*0, 1+8*0, ... 7+8*0

0+8*1, 1+8*1, ... 7+8*1

0+8*4, 1+8*4, ... 7+8*4

推廣:其他語言也可以按這個思路做

1

#!/usr/bin/python

23 data = range(40)

45 window = 867

for loop in range(len(data)/window):

8 tmp =

9for index in

range(window):11#

print tmp

12print"\t

".join([str(x) for x in tmp])

不太好的思路:一開始是想到等差數列公式,先求出每行(代表一行陣列)的第乙個值,後面的根據等差數列公式a1+(n-1)*d,依次求出, **有點囉嗦

1

#!/usr/bin/perl -w

2use strict;

34 my @data = 1..40;

56 my $window = 8;

7 my $offset = 1;

89 my @tmp =();

10for my $loop(0..(@data/$window - 1))

1118

print

"@tmp\n";

19 @tmp =();

20 }

js將陣列按固定長度分割

最近遇到這個問題,需要每隔n個將陣列分開進行操作,開始想想覺得很簡單,結果楞是廢了一會兒功夫才實現,感覺最近業務邏輯寫少了,腦子也不太轉得動了,方法一是我當時寫的,後來發現其實很簡單 捂臉 此處做個記錄.方法一 function cutarray array,sublength if count a...

css實現乙個元素高度固定寬度按比例顯示效果

用padding top百分比可以實現寬度固定高度按比例展示,現在的需求是對乙個video 的盒子div高度是固定的,寬度如何按比例展示?解決後效果如圖 紅框標註的即是我在上面高度比例固定的範圍內寬度自適應的效果 css content btn play iframe,object,embed,vi...

zip函式中的幾個迭代器元素數目不相同會怎麼樣

它的功能可以看這個 在這裡需要注意一點,當通過for迴圈遍歷時,遍歷會在某一iter遍歷到頭後停止,也就是當其中乙個iter的元素數量小於另乙個,那麼元素多的iter的剩餘元素不會被遍歷。這個主要是我在看faster rcnn原始碼時看到的,覺得很不錯。其中的 如下 for iter in pred...