0

我想检查列表中的所有列表值并在必要时更改它们。

体育

我想检查下一个列表是否有高于或低于下一个值的值:
min-value = 6
max-value = 22

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

如果列表值之一低于最小值或高于最大值,则必须将列表值更改为最小值和最大值。pe 例如,新列表必须是:

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

如果列表项的整个值低于最小值或更高,则可以删除列表项的最大值。

如何检查我的列表值并更改它们?

4

1 回答 1

1

有两种方法。在程序中,您遍历列表项并修改或跳过元素:

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

在函数式编程方法中,您使用内置map()来修改元素(即调整边界),但不能删除元素。因此,只需清空这些元素,然后再进行第二次传递filter()以删除它们。请注意,这两个函数都会修改原始列表,因此copy()如果您需要保留原始列表,请使用。

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

我希望我不需要告诉你如何编写AdjustBounds()OutsideBounds()函数......

于 2012-12-05T10:39:42.593 回答