2016-05-12 11:18:04 -0600 commented answer Using a lambda expression in digraphs fails for len(G.sinks())? Thanks for the clear explanation & the helpful link. Back to the algorithm drawing board. 2016-05-12 11:15:15 -0600 received badge ● Scholar (source) 2016-05-12 11:07:05 -0600 received badge ● Student (source) 2016-05-12 10:40:47 -0600 asked a question Using a lambda expression in digraphs fails for len(G.sinks())? I'm gathering digraphs that have exactly one sink. This list comprehension works fine to find the 6 such digraphs of order 3 & put them in a list: [G for G in digraphs(3) if len(G.sinks()) == 1]  However, I need this to work in a lambda expression to make it part of a larger calculation. However, digraphs(3,lambda G: len(G.sinks()) == 1)  creates an iterator that returns no entries. Creating a lamba expression creates the same unexpected zero-length iterator in digraphs, but that same iterator correctly finds the 6 single-sink digraphs if used in a for expression: sage: property = lambda G: len(G.sinks()) == 1 sage: T = digraphs(3, property) sage: print(list(T)) [] sage: for H in digraphs(3): ....: print property(H) ....: False False False True False False False False True True True True False True False False  So, what's the right way to generate the one-sink digraphs of order N directly in the digraphs() generator?