我有許多列表 - 每個列表包含9個浮點數。我實際上需要做的是生成一個新列表,將每個列表中的第一個元素添加爲第一個元素,然後將每個列表中的第二個元素添加爲第二個元素,等等。在F#中「合併」多個相同長度的列表的習慣用法?
So有效,如果我的數據看起來是這樣的:
List1 = [a1; b1; c1; d1; e1; f1; g1; h1; i1]
List2 = [a2; b2; c2; d2; e2; f2; g2; h2; i2]
...
Listn = [an; bn; cn; dn; en; fn; gn; hn; in]
然後,我需要產生一個新的列表LISTX這樣
Listx = [a1 + a2 + ... + an; b1 + b2 + ... + bn; ... ]
名單,我將合併會有所不同(有時我可能只數有9個數字的單個列表,有時超過100個列表,總是9個元素長),所以我想知道是否有人有這樣做的一個很好的慣用方式的任何建議?
我確實看過this question和this one,但都似乎提倡一箇中間步驟,先索引我的元素,然後使用groupby。這使我感到厭煩,因爲a)我感覺對於我的特殊情況可能有更優雅的解決方案,b)性能可能稍後會出現問題 - 我不想過早優化,但我也不想拍攝自己在腳下。
「 *表現可能稍後會有問題 - 我不想過早地優化,但我也不想在腳下拍自己。*「我同意這種觀點,但值得注意的是,如果您正確封裝如果性能是一個問題,稍後改變實現的功能應該是無痛的,不會影響其他代碼。 – ildjarn 2012-02-01 20:32:47