title: Elegant access to edge attributes in networkx
body: <p>Is it indeed the case that to access edge attributes in networkx the awkward third form below is necessary and no variation of the more svelte first two forms will do?</p>
  
  <pre><code>import networkx as nx
  
  G = nx.Graph()
  G.add_edge(1, 2, weight=4.7 )
  G.add_edge(3, 4, weight=5.8 )
  
  # for edge in G.edges():
  #     print edge['weight']
  # 
  # for edge in G.edges():
  #     print G[edge]['weight']
  
  for edge in G.edges():
      print G.edge[edge[0]][edge[1]]['weight']
  </code></pre>