0

リストの長さを見つけようとしています。

In [77]: reduce(lambda acc, x: acc + 1, [x for x in range(8)])
Out[77]: 7

In [78]: reduce(lambda acc, x: acc + 1, [x for x in range(8)], 0)
Out[78]: 8

しかし、それが機能するためには初期値を渡す必要があるようです。なんで ?

4

2 に答える 2

2

最初の要素は最初の要素(0)で始まり、他の7つの要素に1を追加します。2番目は0で始まり、8つの要素のそれぞれに1を追加します。

于 2012-06-06T09:56:52.240 に答える
1

開始値を渡さない場合、リストの最初の値が開始値として使用され、xラムダ関数に引数として渡されることはないため、実際にはmy_list[0] + len(my_list) - 1結果として取得されます。

于 2012-06-06T09:56:24.087 に答える