我有一个这样的列表
testList=[[1,'test',3],[4,'test',6],[1,6,7]]
我的要求是创建另一个列表列表,如下所示
rstList=[[1,'test',3],[1,6,7]]
也就是说,具有元素“test”的列表只需要附加到 rstList 一次。
我有一个这样的列表
testList=[[1,'test',3],[4,'test',6],[1,6,7]]
我的要求是创建另一个列表列表,如下所示
rstList=[[1,'test',3],[1,6,7]]
也就是说,具有元素“test”的列表只需要附加到 rstList 一次。
flag = True
for item in testList:
if ('test' in item and flag) or ('test' not in item):
flag = False
rtList.append(item)
我希望以下代码对您有用
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)
在这里,您可以运行脚本,和/或 fork 并使用它。
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)
假设您只想保留第一个带有“测试”元素的子列表,这是一种方法:
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)