【发布时间】:2012-02-24 12:19:50
【问题描述】:
我有许多列表——每个列表都包含 9 个浮点数。我实际上需要做的是生成一个新列表,该列表从我的每个列表中获取第一个元素并将它们添加在一起作为我的第一个元素,然后将每个列表中的第二个元素添加为我的第二个元素,等等。
如此有效,如果我的数据看起来像这样:
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)性能可能是以后的问题——我不想过早地优化,但我也不想自己开枪在脚下。
【问题讨论】:
-
"以后性能可能会成为问题——我不想过早优化,但我也不想自欺欺人。" 我同意这种观点,但值得注意的是,如果您正确封装了功能,那么如果性能是一个问题,那么稍后更改实现应该是无痛的,并且不会影响您的其余代码。
标签: list f# functional-programming idioms