以下代码:
class MyClass(object):
def __init__(self, myList):
super(MyClass, self).__init__()
self.myList = myList
def getList(self):
return self.myList
inst_list=[]
for i in range(3):
inst_list.append(MyClass([1,2,3, None]))
result=[]
result+=[inst for inst in inst_list if inst.getList() for inst in inst.getList() if inst]
print result
结果:
[1, 2, 3, 1, 2, 3, 1, 2, 3]
如何修改:
[inst for inst in isnt_list if inst.getList() for inst in inst.getList() if inst]
所以如果数字已经在结果列表中,它不会添加数字吗?
我试过了:
result+=[inst for inst in isnt_list if inst.getList() for inst in inst.getList() if (inst and not inst in result)]
但它对我不起作用。
答案 0 :(得分:2)
如果订单无关紧要,您需要设置:
result = {v for inst in isnt_list for v in inst.getList()}
这使用集合理解来构建集合对象。