0

私はPythonの初心者です。list があると想像してください[100, 200, 300, 301, 315, 345, 500]。のように、そこから新しいリストを作成したい[100, 200, 300, 500]

そのようにリストを反復すると:

for i in range(len(list)):
    while (list[i+1] - 100) <= list[i]:
        i = i + 1
        k = list[i]

その後、iwhile ループ内の変更はifor ループ内に反映されないため、同じ要素を複数回繰り返します。

それを避けるためにコードを変更するより良い方法は何でしょうか?

4

3 に答える 3

0

これが私の解決策です:

def my_filter(xs):
    ys = []
    for x in xs:
        if (not ys) or ys[-1] + 100 <= x:
            ys.append(x)
    return ys
my_filter([100, 200, 300, 301, 315, 345, 500])  >> [100, 200, 300, 500]
于 2013-05-08T11:59:40.653 に答える