私はこのようなリストのリストを持っています
testList=[[1,'test',3],[4,'test',6],[1,6,7]]
私の要件は、次のようにリストの別のリストを作成することです
rstList=[[1,'test',3],[1,6,7]]
つまり、要素'test'を持つリストは、rstListに1回だけ追加する必要があります。
私はこのようなリストのリストを持っています
testList=[[1,'test',3],[4,'test',6],[1,6,7]]
私の要件は、次のようにリストの別のリストを作成することです
rstList=[[1,'test',3],[1,6,7]]
つまり、要素'test'を持つリストは、rstListに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)
ここで、スクリプトを実行したり、フォークして遊んだりできます。
「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)
filter(lambda x: x if 'test' in x else None, testList)