Python 使用单循环顺序迭代字典元素
考虑以下词典:Python 使用单循环顺序迭代字典元素,python,Python,考虑以下词典: 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
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
我如何才能做到这一点?您可以使用和排序:
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
您可以使用
sorted()
为两个DICT下订单,如下所示:
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
为了避免重复排序,您还可以使用“收集”模块中的OrderedDict。如果您想在存储时检索数据,则必须使用
OrderedDict
,因为词典在插入数据时不会保留数据
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);
这取决于你希望他们如何分类。下面使用chain
的答案是按键的小写版本对所有元素进行排序(这可能是您想要的)。