How do I print the key-value pairs of a dictionary in python
我想从python字典输出键值对,如下所示:
1 2 | key1 \t value1 key2 \t value2 |
我想我可以这样做:
1 2 | for i in d: print d.keys(i), d.values(i) |
但显然情况并非如此,因为
您现有的代码只需要稍作调整。
1 2 | for i in d: print i, d[i] |
您还可以获得同时包含键和值的迭代器。在python 2中,
1 2 | for k, v in d.iteritems(): print k, v |
在python 3中,
1 2 | for k, v in d.items(): print(k, v) |
字典简介
1 2 3 4 5 6 7 | d={'a':'apple','b':'ball'} d.keys() # displays all keys in list ['a','b'] d.values() # displays you values in list ['apple','ball'] d.items() # displays you pair tuple of key and value [('a','apple'),('b','ball') |
打印键,值方法一
1 2 | for x in d.keys(): print x +" =>" + d[x] |
另一种方法
1 2 | for key,value in d.items(): print key +" =>" + value |
您可以使用
1 2 | >>> list(iter(d)) ['a', 'b'] |
使用
1 2 | d.get('a') 'apple' |
如果字典中不存在键,当给定默认值时,将返回值。
1 2 | d.get('c', 'Cat') 'Cat' |
或者,对于python 3:
1 2 | for k,v in dict.items(): print(k, v) |
如果要按dict键对输出进行排序,可以使用收集包。
1 2 3 | import collections for k, v in collections.OrderedDict(sorted(d.items())).items(): print(k, v) |
它在python 3上工作
1 2 | for key, value in d.iteritems(): print key, '\t', value |
1 2 3 4 5 6 7 | >>> d={'a':1,'b':2,'c':3} >>> for kv in d.items(): ... print kv[0],'\t',kv[1] ... a 1 c 3 b 2 |
您可以通过调用字典上的items()来访问键和/或值。
1 2 | for key, value in d.iteritems(): print(key, value) |
除了前面提到的方法……可以使用"viewitems"、"viewkeys"、"viewvalues"
1 2 3 4 5 6 7 | >>> d = {320: 1, 321: 0, 322: 3} >>> list(d.viewitems()) [(320, 1), (321, 0), (322, 3)] >>> list(d.viewkeys()) [320, 321, 322] >>> list(d.viewvalues()) [1, 0, 3] |
或
1 2 3 4 5 6 | >>> list(d.iteritems()) [(320, 1), (321, 0), (322, 3)] >>> list(d.iterkeys()) [320, 321, 322] >>> list(d.itervalues()) [1, 0, 3] |
或者使用itemgetter
1 2 3 4 5 | >>> from operator import itemgetter >>> map(itemgetter(0), dd.items()) #### for keys ['323', '332'] >>> map(itemgetter(1), dd.items()) #### for values ['3323', 232] |
一本简单的字典:
1 | x = {'X':"yes", 'Y':"no", 'Z':"ok"} |
要在python 3中打印特定的(key,value)对(本例中的pair at index 1),请执行以下操作:
1 2 | for e in range(len(x)): print(([x for x in x.keys()][e], [x for x in x.values()][e])) |
输出:
1 2 3 | ('X', 'yes') ('Y', 'no') ('Z', 'ok') |
下面是一个单行解决方案,可以在一个元组中打印所有对:
1 | print(tuple(([x for x in x.keys()][i], [x for x in x.values()][i]) for i in range(len(x)))) |
输出:
1 | (('X', 'yes'), ('Y', 'no'), ('Z', 'ok')) |