python - networkx and iteration of lists - piece of code I cannot understand -


i'm new python language , have been working networkx package. have list of customers , producers , want function retrieves list of current list based on these types.

here relevant code function retrieves customers:

def customers_iter(self, data=false):      """ return iterator on customers.          if network changed during iteration, iterator becomes         invalid.          parameters         -----------          data -  if true, return list of (name, attributes) pairs, such                 attributes == net.node[name]. otherwise,                 list of customer names returned. default                 false.     """      if data:         return (n n in self.nodes_iter(data=true)                      if self.node[n[0]]["type"] == "customer")     else:         return (n n in self.nodes_iter()                      if self.node[n]["type"] == "customer") 

my question regarding if- , else statement. point if first checking first node n[0]? doesn't statement in else-section define same thing?

regards, jazy

according doc comment:

data -  if true, return list of (name, attributes) pairs, such         attributes == net.node[name]. otherwise,         list of customer names returned. default         false. 

assuming, data parameter has same meaning in self.node_iter function, first branch (if) should filter pairs of (name, attributes), second 1 (else) should filter names.

assuming, also, self.node dictionary-like structure holding associative pairs name -> node, easy see, in first branch have retrieve name tuple (which n[0]), while in second branch use n node name.


Comments

Popular posts from this blog

sql - VB.NET Operand type clash: date is incompatible with int error -

SVG stroke-linecap doesn't work for circles in Firefox? -

python - TypeError: Scalar value for argument 'color' is not numeric in openCV -