我有一个像这样的列表列表
testList=[[1,'test',3],[4,'test',6],[1,6,7]]
我的要求是创建另一个列表列表,如下所示
rstList=[[1,'test',3],[1,6,7]]
也就是说,具有元素'test'的列表需要将仅>>附加到rstList。
答案 0 :(得分:3)
flag = True
for item in testList:
if ('test' in item and flag) or ('test' not in item):
flag = False
rtList.append(item)
答案 1 :(得分:-1)
testList=[[1,'test',3],[4,'test',6],[1,6,7]]
rstList = []
for item in testList:
matched = False
for result_item in rstList:
if item[1] == result_item[1]:
matched = True
if not matched:
rstList.append(item)
答案 2 :(得分:-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)
Here你可以运行脚本,和/或分叉并使用它。
答案 3 :(得分:-1)
假设您只想将第一个子列表保留为'test'元素,这里有一种方法:
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)
答案 4 :(得分:-3)
filter(lambda x: x if 'test' in x else None, testList)