0

I'm trying to make use of Yield and decided to try out flattening a dictionary but I think I missed a detail.

def flatten(d):
    for k, v in d.items():
        if isinstance(v, dict):
            flatten(v)
        else:
            yield v

di = {"a" : 1, 
      "b" : { 
        "c": 2, 
        "d": 3, 
        "e": { 
            "f":4, 
                6:"a", 
                5:{"g" : 6}, 
        } 
        }} 

for i in flatten(di):
    print(i)

This code only returns the number 1.

I was under the impression that my flatten function would keep rolling past the first Yield, unlike Return.

MrPoulet
  • 91
  • 1
  • 1
  • 6

0 Answers0