0

私はこのようなリストのリストを持っています

testList=[[1,'test',3],[4,'test',6],[1,6,7]]

私の要件は、次のようにリストの別のリストを作成することです

rstList=[[1,'test',3],[1,6,7]]

つまり、要素'test'を持つリストは、rstListに1回だけ追加する必要があります。

4

5 に答える 5

-1

次のコードがうまくいくことを願っています

def genNewList(v):
    test = False
    ret = []
    for el in v:
        if ('test' in el):
            if(test == False):
                ret.append(el)
                test = True
        else:
            ret.append(el)
    return ret

testList=[[1,'test',3],[4,'test',6],[1,6,7]]

print 'Original list', testList
print 'New list', genNewList(testList)

ここで、スクリプトを実行したり、フォークして遊んだりできます。

于 2013-01-31T08:05:06.583 に答える
-1

「test」要素を持つ最初のサブリストのみを保持したい場合、1 つの方法を次に示します。

def func(x):
    global foundTest
    if 'test' not in x: return True
    elif not foundTest: foundTest = True; return True
    return False

foundTest = False
rstList = filter(func, testList)
于 2013-01-31T08:05:59.843 に答える
-3
filter(lambda x: x if 'test' in x else None, testList)
于 2013-01-31T07:55:27.650 に答える