考虑如下字典:
a_dict = {"a":1,"b":2,"c":3}
b_dict = {"A":5,"B":6,"C":7}
for (k,v),(k1,v1) in zip(a_dict.items(),b_dict.items())):
print(k,v);
print(k1,v1);
输出
b 2
B 6
a 1
A 5
c 3
C 7
在搜索字典后,我得到了字典的元素没有排序,这就是为什么这些字典元素是随机打印的。但我希望它们按顺序打印。
a 1
A 5
b 2
B 6
c 3
C 7
我该怎么做?
答案 0 :(得分:1)
您可以使用chaining并排序:
from itertools import chain
a_dict = {"a":1,"b":2,"c":3}
b_dict = {"A":5,"B":6,"C":7}
for key, value in sorted(chain(a_dict.items(), b_dict.items()),
key=lambda x: x[0].lower()):
print(key, value)
打印:
a 1
A 5
b 2
B 6
c 3
C 7
答案 1 :(得分:1)
您可以使用sorted()
对这两个词组进行排序,如下所示:
a_dict = {"a": 1,"b": 2,"c": 3}
b_dict = {"A": 5,"B": 6,"C": 7}
for (k,v), (k1,v1) in zip(sorted(a_dict.items()), sorted(b_dict.items())):
print(k,v)
print(k1,v1)
输出:
a 1
A 5
b 2
B 6
c 3
C 7
答案 2 :(得分:1)
如果要在存储时检索数据,则必须使用OrderedDict
,因为dictionaries
在插入数据时不会保留数据。
from collections import OrderedDict
a_dict=OrderedDict((k, v) for k,v in [["a",1],["b",2],["c",3]])
b_dict=OrderedDict((k, v) for k,v in [["A",5],["B",6],["C",7]])
for (k,v),(k1,v1) in zip(a_dict.items(),b_dict.items()):
print(k,v);
print(k1,v1);
答案 3 :(得分:0)
为避免重复排序,您还可以使用集合模块中的OrderedDict。