【发布时间】:2018-10-21 14:02:31
【问题描述】:
我希望所有字典值都按升序排列。
我的字典 df 如下所示:
df = {("A",): {"a": {"a1": 0.5, "a2": 0.2, "a3":1.0}},
("B",): {"b1": 0.8, "b2": 0.4}}
我的理想输出是:
A⇨
a→a2:0.2
B⇨
b2→0.4
A⇨
a→a1:0.5
・
・
・
这是我写的:
for key,value in sorted(df.items(), key=lambda x:x[0]):
print(key)
print(value)
但是当我运行它时,字典是按字母顺序排序的……像key=lambda x:x[1]这样重写会引发KeyError。
我该怎么做?
【问题讨论】:
-
所以你想跨多个键排序?
-
@Ev.Kounis yes,ido
-
你确定
df像你展示的那样,而不像df = {("A",): {"a": {"a1": 0.5, "a2": 0.2, "a3":1.0}}, ("B",): {"b1": 0.8, "b2": 0.4}}?("B", )是否包含在("A", )中? -
@Ev.Kounis 你是对的,df 是
df = {("A",): {"a": {"a1": 0.5, "a2": 0.2, "a3":1.0}}, ("B",): {"b1": 0.8, "b2": 0.4}}我正在编辑我的信息
标签: python sorting dictionary nested