Join dictionary item, keys
This question already has an answer here:
Python dictionaries are unordered (or rather, their order is arbitrary), and when you iterate on them, only the keys are returned:
>>> d = {'0':0, '1':1, '2':2, '3':3, '4':4}
>>> print(d)
{'4': 4, '1': 1, '0': 0, '3': 3, '2': 2}
If you need both keys and values, use iDict.items()
.
If you need ordering, use collections.OrderedDict
.
Iteration over a dictionary only ever yields keys:
>>> list(iDict)
['2_key', '1_key', '4_key', '3_key']
See the dict()
documentation:
iter(d)
Return an iterator over the keys of the dictionary. This is a shortcut for iterkeys()
.
Both list()
and str.join()
will call iter()
on their arguments to iterate over the elements.
Dictionaries are unordered containers; their order stems from the underlying data structure and depends on the insertion and deletion history of the keys.
This is documented under dict.items()
:
CPython implementation detail : Keys and values are listed in an arbitrary order which is non-random, varies across Python implementations, and depends on the dictionary's history of insertions and deletions.
Also see Why is the order in dictionaries and sets arbitrary?
If you see the docs, you learn that iterating over dict
returns keys.
You need to iterate over dict.items()
, that it over tuples (key, value)
:
'--'.join(iDict.items())
If you need to have key AND value joined in one string, you need to explicitly tell Python how to do this:
'--'.join('{} : {}'.format(key, value) for key, value in iDict.items())
链接地址: http://www.djcxy.com/p/30358.html
下一篇: 加入词典项目,键