加入词典项目,键
这个问题在这里已经有了答案:
Python字典是无序的(或者说,它们的顺序是任意的),并且当你迭代它们时,只返回键值:
>>> d = {'0':0, '1':1, '2':2, '3':3, '4':4}
>>> print(d)
{'4': 4, '1': 1, '0': 0, '3': 3, '2': 2}
如果您需要键和值,请使用iDict.items()
。
如果您需要订购,请使用collections.OrderedDict
。
对字典的迭代只能产生密钥:
>>> list(iDict)
['2_key', '1_key', '4_key', '3_key']
请参阅dict()
文档:
iter(d)
返回字典键的迭代器。 这是iterkeys()
的快捷方式。
list()
和str.join()
都会在它们的参数上调用iter()
来迭代元素。
字典是无序的容器; 它们的顺序来源于底层数据结构,并取决于键的插入和删除历史记录。
这在dict.items()
:
CPython实现细节 :键和值以非随机的任意顺序列出,因Python实现而异,取决于字典的插入和删除历史。
另请参阅为什么字典和集合中的顺序是随意的?
如果你看到文档,你会发现迭代dict
返回键。
你需要遍历dict.items()
,它通过元组(key, value)
:
'--'.join(iDict.items())
如果你需要在一个字符串中加入关键的AND值,你需要明确告诉Python如何做到这一点:
'--'.join('{} : {}'.format(key, value) for key, value in iDict.items())
链接地址: http://www.djcxy.com/p/30357.html
上一篇: Join dictionary item, keys
下一篇: Why does the **kwargs mapping compare equal with a differently ordered OrderedDict?