I read a lot of tutorials, but can not find how to iterate dict in string.format like this:
dict = {'this':'I','is':'am','title':'done'}
print(f'the key is {k for k,v in dict}')
print(f'the val is {v for k,v in dict}')
which I want a result like this:
the key is this is title
the val is I am done
so I can print variable length dict.
dict = {'this':'I','is':'am','title':'done'}
print(f'the key is {k for k,v in dict}')
print(f'the val is {v for k,v in dict}')
Then I got error.
Currently your output is:
That's because
k for k,v in dictis a generator expression. Don't confuse it with set comprehension, those curly braces are for f-string.But of course that
k for k,v in dictis problematic. When you iterate over a dictionary itself, it gives you keys. So for the first iteration"this"comes back. you can't unpack"this"into two variables.k, v = "this".You can use this:
output:
This
joinworks because keys and values are strings in your dictionary. If they are not, you should convert them like:For the first one you could also use
print(f'the key is {" ".join(d)}')as dictionaries will give keys in the iteration by default.