关于字典中可迭代的一个问题

代码如下:

a  = {'bf': 4, 'qw': 2, 'er': 2}

for i in a:
    print i
for i,j in a:
    print i,j
for i,j in a.iteritems():
    print i,j
for i,j in a.items():
    print i,j

结果如下:

bf
qw
er
b f
q w
e r
bf 4
qw 2
er 2
bf 4
qw 2
er 2

从第一个和第二个for可以看出,字典本身的可迭代应该只针对键的,加上iteritems()之后让键值对组成了可迭代,items()则生成的是一个键值对的列表

从另一个例子也可以看出:

dic = {'a':3 , 'b':5, 'c': 1}                      这是标准的按键排序
a = sorted(dict.iteritems(), key=lambda A:A[0], reverse=True) 
print a
>>>['c', 'b', 'a']


dic = {'a':3 , 'b':5, 'c': 1}
a = sorted(dic, key=lambda A:A[0], reverse=True)
print a
>>>['c', 'b', 'a']


dic = {'a':3 , 'b':5, 'c': 1}
a = sorted(dic, reverse=True)
print a
>>>['c', 'b', 'a']
原文地址:https://www.cnblogs.com/ymjyqsx/p/6555115.html