0

リスト内のすべてのリスト値を確認し、必要に応じて変更したいと考えています。

次の値よりも高い値または低い値があるかどうか、次のリストを確認したい:
min-value = 6
max-value = 22

mylist = ['4-8','25','16-19','21-32']

リストの値の 1 つが最小値を下回るか、最大値よりも大きい場合は、リストの値を最小値と最大値に変更する必要があります。たとえば、新しいリストは次のようになります。

mylist = ['6-8','22','16-19','21-22']

リスト項目の全体の値が min-value または max-value を下回っている場合、リスト項目を削除できます。

リストの値を確認して変更するにはどうすればよいですか?

4

1 に答える 1

1

2 つのアプローチがあります。手続き型のものでは、リスト項目を繰り返し処理し、要素を変更またはスキップします。

let newlist = []
for element in mylist
    " Parse element.
    if ! OutsideBounds(element)
        call add(newlist, AdjustBounds(element))
    endif
endfor

関数型プログラミングのアプローチでは、ビルトインを使用してmap()要素を変更 (つまり、境界を調整) しますが、要素を削除することはできません。したがって、これらの要素を空にしてから、2 番目のパスを実行filter()してそれらを削除します。どちらの関数も元のリストを変更することに注意してください。元のリストcopy()を保持する必要がある場合に使用してください。

call filter(map(mylist, 'AdjustBounds(v:val)'), '! OutsideBounds(v:val)')

AdjustBounds()and関数の書き方を説明する必要がないことを願っていOutsideBounds()ます...

于 2012-12-05T10:39:42.593 に答える