Join dictionary item, keys
本问题已经有最佳答案,请猛点这里访问。
请参见下面的join方法代码段(使用的是python 2.7.2):
1 2 | iDict={'1_key':'abcd','2_key':'ABCD','3_key':'bcde','4_key':'BCDE'} '--'.join(iDict) |
结果显示为
1 | '2_key--1_key--4_key--3_key' |
请说明为什么只加入密钥?而且顺序也不正确。
注-以下是单独的方法。
'--'.join(iDict.values()) ==>'ABCD--abcd--BCDE--bcde' ==>顺序不对'--'.join(iDict.keys()) ==>'2_key--1_key--4_key--3_key' ==>序列不在ORDE中
如果看到这些文档,您将了解到迭代
您需要在
1 | '--'.join(iDict.items()) |
如果需要将键和值联接到一个字符串中,则需要显式地告诉Python如何执行此操作:
1 | '--'.join('{} : {}'.format(key, value) for key, value in iDict.items()) |
在字典上迭代只会生成键:
1 2 | >>> list(iDict) ['2_key', '1_key', '4_key', '3_key'] |
见
iter(d)
Return an iterator over the keys of the dictionary. This is a shortcut foriterkeys() .
字典是无序的容器;它们的顺序源于基础数据结构,并取决于键的插入和删除历史记录。
这在
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.
另请参见为什么字典和集合中的顺序是任意的?
python字典是无序的(或者更确切地说,它们的顺序是任意的),当您迭代它们时,只返回键:
1 2 3 | >>> d = {'0':0, '1':1, '2':2, '3':3, '4':4} >>> print(d) {'4': 4, '1': 1, '0': 0, '3': 3, '2': 2} |
如果您同时需要键和值,请使用
如果您需要订购,请使用