range in this regardsupporting just single active iteration scan in that we'll see some subtle implications of one-shot iterators in loops that attempt to scan multiple times--code that formerly treated these as lists may fail without manual list conversions dictionary view iterables finallyas we saw briefly in in python the dictionary keysvaluesand items methods return iterable view objects that generate result items one at timeinstead of producing result lists all at once in memory views are also available in as an optionbut under special method names to avoid impacting existing code view items maintain the same physical ordering as that of the dictionary and reflect changes made to the underlying dictionary now that we know more about iterables here' the rest of this story--in python (your key order may vary) dict( = = = {' ' ' ' ' ' keys( dict_keys([' '' '' '] view object in xnot list next(kviews are not iterators themselves typeerrordict_keys object is not an iterator iter(knext( 'anext( 'bview iterables have an iteratorwhich can be used manuallybut does not support len()index for in keys()print(kend=' all iteration contexts use auto as for all iterables that produce values on requestyou can always force dictionary view to build real list by passing it to the list built-in howeverthis usually isn' required except to display results interactively or to apply list operations like indexingk keys(list( [' '' '' ' values( dict_values([ ]list( [ can still force real list if needed ditto for values(and items(views need list(to display or index as list [ new iterables in python