我有以下列表: z = [[9,None], [None, 15], [2,None],
[0,None]] ..and想要一个列表理解,它将返回元素中的整数,如果元素中有一个整数,即使它是0,并且对于两个子元素都为None的元素,将返回1。 我把它带到了这个地步: [a or b if (a!=0 and b!=0) else 0 if set([a,b])=={0,None} else 1 if set([a,b])=={None} else -10 for a,b in z] ..which几乎可以工作,
没有过滤和聚合(sum()等)的非空序列上的迭代器怎么可能不产生任何结果?考虑一个简单的例子:list((el, ord(el)) for el in sequence)
这会产生预期的[('a', 97), ('b',现在,只需使用(...).next()将ord(el)替换为一个表达式,该表达式从某个生成器中取出